53 求n天后的日期
作者: Turbo时间限制: 2S章节: 函数
问题描述 :
写一个函数,传入年月日,计算它的第二天,并返回该日期。由用户输入年月日和一个n值,使用前述函数,计算该日期加n天的日期为多少。
输入说明 :
输入year,month,day和n共4个正整数,以空格分隔。n的值不超过2000。
输出说明 :
输出计算得到的结果年月日共3个正整数,整数之间以一个空格分隔,行首与行尾无多余空格。
输入范例 :
2000 1 1 366
输出范例 :
2001 1 1
#include<stdio.h>
int leap(int n)
{
if(n%400==0 || n%100!=0 && n%4==0)
return 1;
else return 0;
}
int per_month_day(int year,int month)
{
if(month==4 || month==6 || month==9 || month==11)
return 30;
else if(month==2)
{
if(leap(year))
return 29;
else return 28;
}
else return 31;
}
int main()
{
int year,month,day,n,count=0;;
while( scanf("%d %d %d %d",&year,&month,&day,&n) != EOF )
{
count++;
day+=n;
while( day > per_month_day(year,month) )
{
day-=per_month_day(year,month);
month++;
if(month>12)
{
year++;
month-=12;
}
}
if(count>1)
printf("\n");
printf("%d %d %d",year,month,day);
}
return 0;
}