练习专区
今天的一小步就是明天的一大步
Problem 1650 打印月历
Accepted: 0
Total Submit: 2
Time Limit: 1000ms
Memory Limit: 30720KB
Description
定义一个月份类Month,包含年year,月month,星期weekDay,year表示该月份对象是某年,month表示是某月,weekday表示该年的第一天是星期几。
程序首先给你某年的1月1日是一星期中的第几天,格式为year weekday。比如输入2014 3 表示2014年的1月1日为星期3。
要求你按照月历的格式使用Month中的print()函数来完成将这一年中的任何一个月份的月历打印出来。
在打印日期时需要判断这个月的每一天是星期几,同时还要注意这个月有多少天(2月的天数与该年是否为闰年有关)。因此,可能需要你再增加某些函数完成这些功能。
可使用下面的main函数:
void main()
{
int year; //年
int weekday; //该年第1天是星期weekday(0表示星期天,1-6表示星期一到星期六)
int n; //需要输出n个月的月历
int month; //需要打印月历的月份
Month *tm = NULL;
while(cin>>year>>weekday)
{
cin>>n;
for(i = 0;i < n;i++)
{
cin>>month;
tm = new Month(year,month,weekday);
tm->print();
}
}
}
Input
输入有多组。每组第一行是个年份year以及该年第一天(1月1日)是星期几(0-6分别表示星期日到星期六)。//说明:2014 3表示2014年的第一天是星期三。
随后一行是个正整数N表示接下来要输出N个月的月历。
随后N个介于1-12间的正整数表示月份month。
Output
对每一个月份输出该月的月历。输出格式见范例:首行输出星期几,每个之间用一个空格分隔,下面的日期输出在对应位置,左对齐,占7个位置。
Sample Input
Sample Output
Hint