Months have a pattern: All months feature weeks of seven days. The month can start on any day of the week. And months have a varying number of total days, 28, 29, 30, or 31. Given this data, you can display the days and weeks of any month when given only a specific date and the day of the week upon which it falls.
For example, this month is December. It has 31 days, spread across several weeks of 7 days each. The 25th of the month, Christmas, falls on a Tuesday this year. Given this data, you can accurately reconstruct the entire month:
Sun Mon Tue Wed Thu Fri Sat
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Your task for this month’s Exercise is to write a function, month(). The function accepts two arguments, day and weekday: day is the day of the month, such as 25 for the 25th, and weekday is an integer value 0 through 6 representing Sunday through Saturday.
Here is a skeleton to help get you started, along with a few arguments you need to process to complete the Exercise:
#include <stdio.h>
enum { SUN, MON, TUE, WED, THU, FRI, SAT };
void month(int day, int weekday)
{
}
int main()
{
month(15,WED);
month(9,MON);
month(23,SUN);
return(0);
}
The main() function contains three statements that the month() function must process and output in the calendar-like format shown earlier. For simplicity’s sake, assume that each month has only 30 days.
Please try this Exercise on your own before you check out my solution.