写一个函数,传入年月日,计算它的第二天,并返回该日期。由用户输入年月日和一个n值,使用前述函数,计算该日期加n天的日期为多少。
输入year,month,day和n共4个正整数,以空格分隔。n的值不超过2000。
输出计算得到的结果年月日共3个正整数,整数之间以一个空格分隔,行首与行尾无多余空格。
范例
输入 2000 1 1 366
输出 2001 1 1
#include<stdio.h>
int main() {
int year, month, day, n;
scanf("%d%d%d%d", &year, &month, &day, &n);
int months[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//方便下标和月份相一致
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {//判断闰年
months[2] = 29;
}
day = day + n;
//最重要的部分
while (day > months[month]) {
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
months[2] = 29;//易错点,可能存在闰年
}
else {
months[2] = 28;
}
day = day - months[month];
month++;
if (month > 12)
{
year++;
month = month - 12;
}
}
printf("%d %d %d\n", year, month, day);
}
版权声明:本文为qq_43403657原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。