| Luncustaf hat folgendes geschrieben: |
kannst du machen sofern das rechtlich ok ist? |
Eigentlich nicht. - Aber so schwer ist das selbst schreiben nun auch wieder nicht. Ich hatte mal in
Coder-Area ein JavaScript, dessen Kernroutine sich relativ simpel umsetzen lässt:
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:
| procedure berechne(const d1, m1, y1, d2, m2, y2: word); var i, erg, tage, instage : integer; thisYear : integer; begin thisYear := y1; i := m1; instage := 0;
if(d2 < d1) or (i <> m2) or (thisYear < y2) then repeat case i of 2 : if(IsLeapYear(thisYear)) then tage := 29 else tage := 28; 4, 6, 9, 11: tage := 30; else tage := 31; end;
inc(instage,tage);
if(i = 12) then begin i := 1; inc(thisYear); end else inc(i); until(i = m2) and (thisYear = y2);
erg := instage + (d2 - d1); ShowMessage(Format('Errechnete Tage: %d',[erg])); end; |
Aufzurufen im Fall deines Beispiels, @Luncustaf, so:
Quelltext
1: 2: 3: 4:
| berechne( 20,4,2003, // Datum #1 6,5,2003 // Datum #2 ); |
Das Auslesen der einzelnen Felder aus dem String
Quelltext
dürfte nicht das Problem sein (
copy,
pos,
StrToInt).
Natürlich ist der Weg mit
DaysBetween eleganter, scheitert aber auch bei mir an Delphi 5.
Edit: Code und Link gefixt.