#include <stdio.h>
int fac(int x,int y);
int dayy(int x,int y);
void main()
{
int day,month,year;
int k;
printf("请输入一个日期:\n");
scanf("%d%d%d",&year,&month,&day);
printf("你输入的日子为:");
printf("%d年%d月%d日\n",year,month,day);
k=dayy(month,year)+day;//计算输入时间是这个年的第几天
printf("第二天的日子为:");
printf("%d年%d月%d日\n",fac(k+1,year)/100>=month?year:year+1,fac(k+1,year)/100,fac(k+1,year)%100);
printf("一周后的日子为:");
printf("%d年%d月%d日\n",fac(k+7,year)/100>=month?year:year+1,fac(k+7,year)/100,fac(k+7,year)%100);
}
int fac(int x,int y)//输入一个天数,求年月日。
{
int a[14]={1,32,60,91,121,152,182,213,244,274,305,335,366,397};
int i,d;
if ((y%4==0&&y%100!=0)||y%400==0)//判断是否为闰年
{
for (i=2;i<=12;i++)
{
a[i]=a[i]+1;
}
}
for (i=1;i<14;i++)
{
if (a[i]>x)
{
if (i==13)
{
y++;
d=1*100+x-a[12]+1;
break;
}
d=i*100+(x-a[i-1]+1);//i表示第几月x-a[i-1]+1表示是这个月的几号
break;
}
else continue;
}
return d;
}
int dayy(int x,int y)//该函数的作用是计算到这个月的第一天前是该年的第几天
{
int nday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int a=0;
int i;
if ((y%4==0&&y%100!=0)||y%400==0)
{
nday[2]=29;
}
for (i=0;i<x;i++)
{
a+=nday[i];
}
return a;
}