Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TDate für negative Jahreszahlen? (https://www.delphipraxis.net/138904-tdate-fuer-negative-jahreszahlen.html)

Wolfgang Mix 19. Aug 2009 19:03


TDate für negative Jahreszahlen?
 
Habe gerade das Julianische Datum aus Wikepedia nach Delphi übersetzt,
würde als Rückgabewert gerne TDate statt String haben. Geht das irgendwie für negative Jahre?
Delphi macht meines Wissens bei Datum < 1.1.0001 schlapp.


Delphi-Quellcode:
implementation

{$R *.dfm}

function test(jd:longint):String;
var day,month,year:word;
    greg:longint;
    A,Alpha,B,C,D,E,F,G,J,M,T,Z:real;
{Eingabe:      JD  (Julianischer Tag) }
begin
  Z:=Int (JD + 0.5);
  F:=Frac(JD + 0.5);

  If Z < 2299161 Then A:=Z  // 15.10.1582
  else
  begin
   g:= int((Z-1867216.25) / 36525.25);
   a:=z+1+g-int(g/4);
  end;
  B := A+1524;
  C := Int((B-122.1)/365.25);
  D := int(365.25 * C);
  E := Int((B-D)/30.6001);
  T := B-D-int(30.6001*E) + F;
  if(E<14) then
    M := E-1
  else
    M := E-13;
  if (M>2) then
      J := C-4716
  else
      J := C-4715;
  if j<1 then j:=j-1;
  T:=trunc(T);
  result:=FloatToStr(T)+'.'+FloatToStr(M)+'.'+FloatToStr(J);
end;

//T.M.J = Kalenderdatum von JD


procedure TForm1.Button1Click(Sender: TObject);
var jd:longint;
begin
   edit1.Text:=test(0);
end;

end.
Gruß

Wolfgang

SirThornberry 19. Aug 2009 19:44

Re: TDate für negative Jahreszahlen?
 
TDate sollte ein Extended sein und der kann auch negative Werte annehmen. Allerdings kann ich mir vorstellen das die Funktionen zum wandeln von Datum zu String damit dann natürlich nicht klar kommen weil diese mit einem anderen Datum rechnen.

Wolfgang Mix 19. Aug 2009 19:56

Re: TDate für negative Jahreszahlen?
 
Also 2 Funktionen draus machen, eine für Daten vor und eine nach 1.1.0001,
dann habe ich zumindest für den Bereich >= 1.1.0001 eine mit Tdate als Rückgabewert?

anse 19. Aug 2009 21:09

Re: TDate für negative Jahreszahlen?
 
Alte Sch..., ich achte in letzter Zeit mal auf die Anzahl der Beiträge in den Benutzer-Beschreibungen, links neben den Postings - und sehe bei SirThornberry : 10.927 Beiträge? Ich hoffe da ist noch Zeit zum Schlafen, Jungs :)

Großes Kompliment an alle Moderatoren und sonstige Problemlöser hier!

hoika 19. Aug 2009 22:04

Re: TDate für negative Jahreszahlen?
 
Hallo,

da läuft ein Bot, der zitiert nur intelligent aus Google ;)

*fg*


Heiko

Wolfgang Mix 19. Aug 2009 22:19

Re: TDate für negative Jahreszahlen?
 
@hoika

Hast Du meine Fragestellung verstanden?


Gruß

Wolfgang

mkinzler 20. Aug 2009 05:25

Re: TDate für negative Jahreszahlen?
 
@Wolfgang: Heiko hat doch nur das Mod-System entlarvt ...
Das war OT :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz