program DayOfYear; uses Crt; var d,m,y,h,Rest,WD: integer; procedure GetDate; begin Write('Tag : '); ReadLn(d); Write('Monat : '); ReadLn(m); Write('Jahr (4stellig): '); ReadLn(y); end; procedure CalcWD; begin if (m=1) OR (m=2) then begin Inc(m,12); Dec(y); end; h := y DIV 100; Rest := y MOD 100; WriteLn('h',h,' Rest',Rest); WD := (d+(m+1)*26 DIV 10+5*Rest DIV 4+h DIV 4-2*h-1) MOD 7; end; procedure OutWD1; begin Write('OutWD1: Das war ein '); case WD of 0: Write('Sonntag'); 1: Write('Montag'); 2: Write('Dienstag'); 3: Write('Mittwoch'); 4: Write('Donnerstag'); 5: Write('Freitag'); 6: Write('Samstag'); end; WriteLn('. [',WD,']'); end; procedure OutWD2; const Days:array[0..6] of string=('Sonntag','Montag','Dienstag','Mittwoch', 'Donnerstag','Freitag','Samstag'); begin Write('OutWD2: Das war ein ',Days[WD],'. [',WD,']'); end; begin ClrScr; WriteLn('Problemzonen: 19.5.2000'); GetDate; CalcWD; OutWD1; OutWD2; end.