2682 - 天数
时间限制 : 1 秒
内存限制 : 128 MB
小艳昨晚梦见了一位老人,老人告诉她在她第20个生日时她的白马王子将会出现,她很想知道还要过几天她的白马王子才会出现,但是她总是算不清楚,所以今天一大早就找到了你——传说中的电脑高手,想请你帮她写个程序,告诉她答案。
题目输入
共两行:
第一行3个数,Y0,M0,D0数与数之间用空格隔开,分别为小艳的出生年月日(即第一个生日)
第二行3个数,Y,M,D数与数之间用空格隔开,分别为今天的年月日
题目输出
仅包含一行,即需要经过的天数
输入/输出样例
输入格式
1999 4 5 2009 12 12
输出格式
3036
C++解答
#include <cstdio> int main(void) { int y0, m0, d0, y, m, d, s=0, i; int md[12]={31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d%d%d%d%d%d", &y0, &m0, &d0, &y, &m, &d); y0 += 19; //目标年份 if(y%400==0 || y%4==0&&y%100>0) md[1] = 29; for(s=-d, i=0; i<m-1; ++i) s -= md[i]; // 负数表示当年已过的天数 for(; y<y0; ++y) { //中间年份的天数 if(y%400==0 || y%4==0&&y%100>0) s += 366; else s += 365; } if(y%400==0 || y%4==0&&y%100>0) md[1] = 29; else md[1] = 28; for(i=0, s+=d0; i<m0-1; ++i) s += md[i]; printf("%d\n", s); return 0; }