Due: Monday, May 2, 2016
See Lesson #26 in my C tutorial.
Consider a structure that represents calendar dates as follows:
struct Date { int year; int month; int day; };
Write a program that accepts a date from a user and then prints out the next date. Your program should have a function that reads a date from the input, a function that advances a date by one day, and a function that displays a date. Your main program should just call these three functions and thus be very simple. Here are suggested declarations of the functions:
struct Date get_date( void ); struct Date next_date( struct Date today ); void put_date( struct Date today );
Note that advancing a date to the next day is tricky because of the variable number of days in a month. Ignoring leap years for the moment, you can deal with this by using an initialized array of constant month lengths. Inside the next_date function you might have:
const int month_lengths[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
After advancing the day member of the date you can check to see if it has gone too far by comparing it with the appropriate month length. I will leave it as optional the handling of leap years (be aware of the full leap year rules!).
Submit your source file to Moodle.
Last Revised: 2016-04-27
© Copyright 2016 by Peter C. Chapin
<PChapin@vtc.vsc.edu>