【题意】
2000年1月1日后n天是几月几号周几
【输入】
多组数据,以-1结尾
每行一个数字表示n
【输出】
对于每组数据输出年月日周几
例如:2004-09-06 Saturday
大水题,考验一下细心程度,顺便说一下,2000年1月1日是周六
program poj2080; const long:array [1..12] of longint=(31,28,31,30,31,30,31,31,30,31,30,31); var y,m,d,n,i,j,k,no:longint; begin repeat read(n); if n=-1 then break; no:=(6+n) mod 7; if no=0 then no:=7; y:=2000; m:=1; d:=1; repeat if (y mod 4 = 0)and ((y mod 100<>0)or((y mod 100 = 0)and(y mod 400 = 0))) then k:=366 else k:=365; inc(y); n:=n-k; until n<0; dec(y); n:=n+k; repeat k:=long[m]; if (m=2)and(y mod 4 = 0)and ((y mod 100<>0)or((y mod 100 = 0)and(y mod 400 = 0))) then inc(k); inc(m); n:=n-k; until n<0; dec(m); n:=n+k; d:=d+n; if d>k then begin d:=d-k; inc(m); end; write(y,'-'); if m<10 then write(0); write(m,'-'); if d<10 then write(0); write(d,' '); case no of 1:writeln('Monday'); 2:writeln('Tuesday'); 3:writeln('Wednesday'); 4:writeln('Thursday'); 5:writeln('Friday'); 6:writeln('Saturday'); 7:writeln('Sunday'); end; until false; end.