static string wochentag(int tag, int monat, int jahr) { … }
Quellcode
- PROGRAM Julian_Pas;
- USES Crt;
- TYPE
- Datum = RECORD
- Tag : ShortInt;
- Monat : ShortInt;
- Jahr : Integer;
- END; {RECORD Datum DATENTYP}
- VAR
- WochenTag : ShortInt;
- Jul_Dat : LongInt;
- Eingabe : Datum;
- FUNCTION Wochen_Tag(Ein : Datum): LongInt;
- BEGIN
- IF (Ein.Monat <= 2) THEN BEGIN
- Ein.Jahr := Ein.Jahr - 1;
- Ein.Monat := Ein.Monat + 12;
- END; {IF Ein.Monat}
- WITH Ein DO
- Wochen_Tag :=
- (Trunc(365.25*Jahr)+Trunc(30.6001*(Monat+1))+1720983+Tag) MOD 7;
- {0 .. Sonntag, ... , 6 .. Samstag}
- END; {FUNKTION Wochen_Tag}
- PROCEDURE Datum_Lesen(VAR Dat : Datum);
- BEGIN
- WITH Dat DO BEGIN
- WriteLn('Datumseingabe: ');
- Write('TT: '); ReadLn(Tag);
- Write('MM: '); ReadLn(Monat);
- Write('JJJJ: '); ReadLn(Jahr);
- END; {WITH Dat}
- END; {PROCEDURE Datum_Lesen}
- FUNCTION Wochen_Tag_Ausgabe(Tag_Code : ShortInt): String;
- VAR
- Tag_Name : String;
- BEGIN
- CASE (Tag_Code) OF
- 0 : Tag_Name := 'Sonntag';
- 1 : Tag_Name := 'Montag';
- ...
- 6 : Tag_Name := 'Samstag';
- ELSE Tag_Name := '???????';
- END; {CASE}
- Wochen_Tag_Ausgabe := Tag_Name;
- END; {FUNCTION Wochen_Tag_Ausgabe}
- BEGIN {Hauptprogramm}
- clrscr;
- Datum_Lesen(Eingabe);
- Write('Es ist (war) ein ');
- WriteLn(Wochen_Tag_Ausgabe(Wochen_Tag(Eingabe)));
- ReadLn;
- END. {Hauptprogramm}
Bitte um schnelle Hilfe!
mfg