题目描述
小艳昨晚梦见了一位老人,老人告诉她在她第20个生日时她的白马王子将会出现,她很想知道还要过几天她的白马王子才会出现,但是她总是算不清楚,所以今天一大早就找到了你——传说中的电脑高手,想请你帮她写个程序,告诉她答案。
输入
共两行:
第一行3个数,Y0,M0,D0数与数之间用空格隔开,分别为小艳的出生年月日(即第一个生日)
第二行3个数,Y,M,D数与数之间用空格隔开,分别为今天的年月日
输出
仅包含一行,即需要经过的天数
样例输入
1999 4 5 2009 12 12
样例输出
3036
提示
100%的数据,1≤Y0,Y≤3000,保证输入的日期合法,保证答案为正。第20个生日即2018年4月5日。
代码:
#include <stdio.h>
int GetF(int year);
int main ()
{
int y1,m1,d1;
int y2,m2,d2;
scanf("%d%d%d",&y1,&m1,&d1);
scanf("%d%d%d",&y2,&m2,&d2);
y1+=19;
// int ys,ye;
// int ds,ed;
int ms=m2;
int me=12;
int ds=d2;
int de;
int cnt=0;
for(int i=y2; i<=y1; i++)
{
if(i==y1)me=m1;
for(int o=ms; o<=me; o++)
{
ms=1;
if(o==2)de=GetF(i);
else
{
if(o<=7)
{
if(o%2==0) de=30;
else de=31;
}
else
{
if(o%2==0)de=31;
else de=30;
}
}
if(i==y1&&o==m1)de=d1;
for(int m=ds; m<=de; m++)
{
ds=1;
cnt++;
}
}
}
printf("%d\n",cnt-1);
}
int GetF(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return 29;
else return 28;
}