Firt of all I think you have to set a configuration for the start week: i.e. the first week you start with menu 1.
Probably is better also configure a day of start, in this way you can choose the day of week in which the menu change.
My proposal is to set 2 configuration:
$menu_duration, in this way you your code is more flexible.
After that you can use some logic to:
- Get and count all menus (now you have 2 menus, but in the futer, mayme can be more)
- Calculate for present date which is current and next menu (making use of start date)
- Also calculate the date in which the menu will change
The code for that can be placed in a plugin and the configuration can be placed in a custom admin page, but for semplicity of answer I will put it in a page template file.
I assume here that your custom post type is named 'menus'.
* Template Name: Menu Program
/* config */
$start_date = '2013/01/01'; // yyyy/mm/dd
$menu_duration = 7; // days
/* logic */
$menus = get_post('post_type=menus&posts_per_page=-1&orderby=date&order=ASC');
$menunum = count($menus);
$start_a = explode('/', $start);
$start_ts = mktime(1,0,0, (int)$start_a, (int)$start_a, (int)$start_a);
$differ = (time() - $start_ts) / ( DAY_IN_SECONDS * $menu_duration );
$week_now = ceil ( $differ );
$untill = ( ($week_now+1) - $differ ) * ( DAY_IN_SECONDS * $menu_duration );
$untill_date = date_i18n( get_option('date_format'), $untill);
$next_week_index = $week_now % $menunum;
$current_week_index = $next_week_index-1 >= 0 ? $next_week_index-1 : $menunum-1;
$current_week_menu = $menus[$current_week_index];
$next_week_menu = $menus[$next_week_index];
/* display */
printf ( '<p>' . __('This week, untill %s, we are serving menu: %s') . '</p>', $untill_date, apply_filters('the_title', $current_week_menu->post_title) );
echo '<p>' . apply_filters('the_content', $current_week_menu->post_content) . '</p>';
printf ( '<p>' . __('Starting from %s we are serving menu: %s') . '</p>', $untill_date, apply_filters('the_title', $next_week_menu->post_title) );
echo '<p>' . apply_filters('the_content', $next_week_menu->post_content) . '</p>';
Of course, the display part is just an axample.
Note that code is all untested.