Einzelnen Beitrag anzeigen

Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#1

Gregorianischer Tag - Gregorianisches Datum

  Alt 18. Jul 2009, 12:36
Die häufigsten Kalenderfunktionen kommen mit dem gregorianischen Kalenderbereich aus.
Ich habe daher den 15.10.1582 als den gregorianischen Tag 1 definiert (ab 0 Uhr);
Gregor liefert die Tageszahl zu einem Datum, GregorToStr zu einer Tagesnummer
das Gregorianische Datum;
Ich freue mich wieder auf konstruktive Ergänzungen.

Aktualisierte Fassung hier

Delphi-Quellcode:
function Gregor(d,m,yyyy:word):longint;
var Tmp:TDateTime;
begin
    Tmp:=EncodeDate(yyyy,m,d);
    result:=1+Round(tmp-StrToDate('15.10.1582'));
    if result<1 then raise Exception.CreateFmt('Gregor(%d) - invalid date', [result])
end;


function GregorToStr(n:longint):String;
begin
    if (n<1) or (n>3074324) then
       raise Exception.CreateFmt('GregorToStr(%d) - invalid n', [n])
    else
    begin
       n:=n-115859;
       result:=DatetimeToStr(n);
    end;
end;
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat