Hab ich mir schon fast gedacht, unser Lehrer hat das schnell geschrieben, der ist sowieso ein Freak *hehe*
Wenn ich Boolean durch Integer müsste es ja klappen, probier es gleich mal...
Nachher kommen noch 2 Fragen, wegen neuen Function...
1. Wie kann ich das machen 3 Editfenster >Tag< >Monat< >Jahr< und jetzt soll der den nächsten Tag angeben,
mit berücksichtigung von Schaltjahr und allen, dh wenn 31.12.2001 dann soll der 1.1.2002 ausgeben
2. Die zweite Function sollte sein, dass man 6 Editfenster hat 2 mal jeweils >Tag< >Monat< >Jahr<
dann soll die x Tage unterschied ausgeben, also in Tagen (muss nicht mit Tage, Monat,Jahr sein)
Wenn einer Lust hat mir zuhelfen, wär ich sehr Dankbar...
Also immer her mit der Hilfe...
-----------------------------------------------------------------------------------------------------------
EDIT:
Hier nochmal mein vervollständigter Quelltext, hier kalppt gar nichts mehr
Könnt es ja mal selber testen Ihr braucht 3 Button und 4 Editfenster (mit den Namen "EdTag" , "EdMonat" ,
"EdJahr" , "EdErgebnis")
Danke brauch schnelle Hilfe...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83:
| implementation
function istSchaltjahr(pJahr : integer) : boolean; begin if pJahr mod 4 <> 0 then result:=false else if pJahr mod 100 <> 0 then result:= true else if pJahr mod 400 = 0 then result:=true else result:=false; end;
function TageImMonat(pMonat, pJahr : integer) : integer; begin case pMonat of 1,3,5,7,8,10,12 : result:=31; 2 : if istSchaltjahr(pJahr) then result:=29 else result:=28; 4,6,9,11 : result:=30; else result:=0; end; end;
function istGueltig(pTag, pMonat, pJahr : integer) : boolean; begin if pJahr < 1582 then result:=false else if (pJahr = 1582) and (pMonat < 10) then result:=false else if (pJahr = 1582) and (pMonat = 10) and (pTag < 15) then result:=false else if (pTag < 1) and (pMonat < 1) then result:=false else if (pMonat > 12) and (pMonat > TageImMonat(pMonat ,pJahr)) then result:=false else result:=true; end;
function Wochentag(pTag, pMonat, pJahr : integer) : integer; var JH, j, z : integer; begin if pMonat < 3 then begin pMonat:=pMonat + 12; pJahr :=pJahr - 1; end; JH:=pJahr div 100; j :=pJahr mod 100; z :=(pTag + (pMonat+1) * 26 div 10 + 5*j div 4 - 2*JH - 1) mod 7; if z < 0 then z:=z + 7; end;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); var Jahr : integer; begin Jahr:=StrToInt(EdJahr.text); if istSchaltjahr(Jahr) then EdErgebnis.text:='Schaltjahr' else EdErgebnis.text:='Kein Schaltjahr' end;
procedure TForm1.Button2Click(Sender: TObject); var Jahr, Monat : integer; begin Jahr :=StrToInt(EdJahr,text); Monat:=StrToInt(EdMonat,text); EdErgebnis.text:=IntToStr(TageImMonat(Monat, Jahr)); end;
procedure TForm1.Button3Click(Sender: TObject); var Tag, Monat, Jahr : integer; begin Tag :=StrToInt(EdTag.text); Monat:=StrToInt(EdMonat.text); Jahr :=StrToInt(EdJahr.text); if istGueltig(Tag, Monat, Jahr) then EdErgebnis.text:='Gültig' else EdErgebnis.text:='Ungültig' end; |