1 solutions
-
0
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; }Pascal :
Var month:array[1..12]of longint; ans,yy,mm,dd,y,m,d:longint; function check(x:longint):boolean; begin if (x mod 400=0)or(x mod 100<>0)and(x mod 4=0) then exit(true); exit(false); end; begin {assign(input,'days.in');reset(input); assign(output,'days.out');rewrite(output);} ans:=0; month[1]:=31;month[2]:=28;month[3]:=31; month[4]:=30;month[5]:=31;month[6]:=30; month[7]:=31;month[8]:=31;month[9]:=30; month[10]:=31;month[11]:=30;month[12]:=31; read(yy,mm,dd); read(y,m,d); yy:=yy+19; while (y<>yy)or(m<>mm)or(d<>dd) do begin inc(ans); if check(y) then month[2]:=29 else month[2]:=28; inc(d); if d>month[m] then begin inc(m); d:=1; end; if m>12 then begin m:=1; inc(y); end; end; writeln(ans); {close(input); close(output);} end.
- 1
Information
- ID
- 16884
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By