int main( void ) { printf(" Leap year:\n"); print_year(leap); printf("\n"); test( day_init("February", 24) ); test( day_init("August", 9) ); test( day_init("December", 30) ); return 0; }
day next_week( day a ) { int i; for ( i = 0; i < 12 && strcmp( a.month, leap[i].name ); i++) ; if ( i == 12 ) { printf("Error, wrong month name: %s\n", a.month); abort(); } int new_date = a.date + 7; if ( new_date > leap[i].days ) { return day_init( leap[(i+1) % 12].name, new_date - leap[i].days); } else { return day_init( leap[i].name, new_date ); } }
day day_constructor (void) { day newday = (day) check_malloc (sizeof(day_struct)); day_init(newday); return (newday); }