题目
明天几号:给出某天的日期,求它的下一天的日期。输入三个整数,表示年月日,
数据保证是合法的。输出明天日期。
注意:要考虑闰年、跨月、跨年等多种情况。
思路分析
一般情况下day++
特殊情况 1、闰年平年2月天数不同
2、若为每个月最后一天 month加1,day变为1
3、若为一年的最后一天,year加1,mouth变为1
代码实现
void Date_of_calculation(int year, int mouth, int day);
int main() {
int y, m, d;
cout << "请输入年月日:" << endl;
cin >> y >> m >> d;
Date_of_calculation(y, m, d);
return 0;}
void Date_of_calculation(int year,int mouth,int day) {
//先用d储存月份天数信息
int d;
switch (mouth) {
case 2:d=28;
if ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0)
d ++; break; //注意break跳出
case 4:
case 6:
case 9:
case 11:d = 30;break;
default:d = 31;break;
}
day++;
if (day > d) {
mouth++; day = 1;
if (mouth > 12) {
year++; mouth = 1;}
}
cout << "下一天是" << year << "年" << mouth << "月" << day<<"日";
}