题目描述 Description
北京2008奥运会将于2008年8月8日开幕,这可是我们中国的骄傲。想当年我们在争取2000年奥运会主办权惜败之后,终于有机会在今年扬眉吐气了。现在,我们每天都看到奥运的倒计时,各大网站都贴着“距奥运开幕还有XXX天”。现在我们自己也算一把,看一下从这个世纪开始的某一天,离我们的2008年奥运开幕还有多少天。
输入描述 Input Description
输入为一行,包含三个用空格隔开的整数 Year ,month ,day ,代表年、月、日。输入数据保证是一个合法的日期.
输出描述 Output Description
输出为一行,包含一个整数,代表离奥运开幕式还有多少天。
样例输入 Sample Input
2008 8 7
样例输出 Sample Output
1
数据范围及提示 Data Size & Hint
该日期在 2000.1.1 到 2008.8.7 之间。
2008广州市队选拔赛
下面附上代码:
#include<cstdio>
#include<cstring>
int main()
{
int y, m, d;
scanf("%d%d%d", &y, &m, &d);
int dy = d, ad = 221, ans = 0, flag = 0;
if(y%4==0)
{
if(y%100 == 0 && y%400!=0)
{
flag = 0;
}
else flag = 1;
}
for(int i = 1; i < m; i++)
{
if((i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==11))
dy += 31;
if(flag && i==2)
dy += 29;
if(!flag && i==3 )
dy += 28;
if((i==4 || i==6 || i==9))
dy += 30;
}
for(int i = y; i < 2008; i++)
{
if(i%4==0)
{
if(i%100==0 && i%400!=0)
{
ans += 365;
}
else
ans += 366;
}
else ans+=365;
}
printf("%d\n",ans+ad-dy);
}