POJ 1008(模拟)

内容目录

最后一天特判

Program P1008;
var
   n,i,j1,j2,j,day,month,year:longint;
   daytotal,tday,tmonth,tyear:longint;
   s,s1:string;
   mon:array[1..19] of string=('pop','no','zip','zotz','tzec','xul','yoxkin','mol','chen','yax','zac','ceh','mac','kankin','muan', 'pax', 'koyab', 'cumhu','uayet');
   tmon:array[1..20] of string=('imix', 'ik', 'akbal','kan','chicchan','cimi','manik','lamat','muluk','ok','chuen','eb','ben','ix','mem','cib','caban','eznab','canac','ahau');
begin
   readln(n);
   writeln(n);
   for i:=1 to n do
   begin
      readln(s);
      j1:=1;
      while (s[j1]<>'.') do inc(j1);
      s1:=copy(s,1,j1-1);
      val(s1,day);
      j2:=length(s);
      while (s[j2]<>' ') do dec(j2);
      s1:=copy(s,j2+1,5);
      val(s1,year);
      inc(j1);
      s1:=copy(s,j1+1,j2-j1-1);
      for j:=1 to 19 do
         if s1=mon[j] then
         begin
            month:=j;
            break;
         end;
      daytotal:=year*365+day+1+(month-1)*20;
      tyear:=(daytotal-1) div 260;
      tday:=(daytotal mod 13);
      if tday=0  then tday:=13;
      tmonth:=(daytotal mod 20);
      if tmonth=0 then tmonth:=20;
      writeln(tday,' ',tmon[tmonth],' ',tyear);
   end;

end.