Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Umwandlung => Tage in "x Jahre, y Monate, und z Tage" (https://www.delphipraxis.net/47720-umwandlung-%3D-tage-x-jahre-y-monate-und-z-tage.html)

Coder 15. Jun 2005 11:55


Umwandlung => Tage in "x Jahre, y Monate, und z Tage
 
Wie geht die
Umwandlung
Tage => in => "x Jahre, y Monate, und z Tage?

also die Umwandlung in x Jahre und y Tage funktioniert so in etwa (obwohl da auch noch 1 Fehler drin scheint... => bei 365 Tagen )

Delphi-Quellcode:
function umwand(tage: Integer) : integer;
var astr: string;
a, c: real;
b ,d :integer;
begin
c:= (tage);
a := dix (tage , 365.25);
d := trunc(a* 365.25);
b := abs(trunc((tage -(d )))) mod 365;
c := trunc( tage ) ;
astr := floattoStr ( a ) + ' Jahre ' + floattoStr ( b ) + ' Tage'+ chr(13)+chr(10);
Form1.Memo1.Text := astr;
end;
habt Ihr eine Idee?


danke

marabu 15. Jun 2005 12:33

Re: Umwandlung => Tage in "x Jahre, y Monate, und z
 
Hallo Jens,

Tag und Woche sind im weitesten Sinne exakte Zeiteinheiten. Monat und Jahr sind Kalendereinheiten und keine Zeiteinheiten. Aber wenn du mit solchen Ungenauigkeiten leben kannst:

Delphi-Quellcode:
procedure DecodeDays(iDays: cardinal; var Years, Months, Days: word);
begin
  DecodeDate(iDays, Years, Months, Days);
  Dec(Years, 1900);
  Dec(Months);
end;
Grüße vom marabu

Coder 27. Jun 2005 13:52

Re: Umwandlung => Tage in "x Jahre, y Monate, und z
 
mhh,aber wie ruf ich das Ding auf?
war mir bisher nicht geglückt

Kompon Ente 27. Jun 2005 13:55

Lies die Parameter, dann weißt Du's!

Coder 27. Jun 2005 15:06

Re: Umwandlung => Tage in "x Jahre, y Monate, und z
 
ja, habe ich..
aber ich denke, ich will die Daten zurück haben?
1) würde mir als Function mehr einleuchten
2) habe ich Delphi 3...
möglich ... daß erst Delphi 9 die Prozedur kennt?
Nich mal google gibt was aus..

kannste nicht mal nen Beispiel CALL angeben, bitte?

a:= DecodeDays (1253,,,); ? => so?

leddl 27. Jun 2005 15:14

Re: Umwandlung => Tage in "x Jahre, y Monate, und z
 
:gruebel: Schonmal was von VAR-Parametern gehört? Du brauchst ja in diesem Fall nicht nur einen Rückgabewert, daher kommt eine normale Funktion nicht in Frage. Du benötigst Tage, Monate und Jahre. Und die bekommst du durch die VAR-Parameter zurückgeliefert. Einfach drei Word-Variablen in die Funktion geben, die beinhalten dann nachher die entsprechenden Werte.
Marabus Funktion kennt Delphi garantiert nicht. Weder D2k5, noch D3. Die mußt du natürlich selbst reinschreiben. DecodeDate sollte D3 allerdings schon kennen. Kann allerdings sein, daß du dafür wieder ne Unit einbinden mußt, weiß das grade nicht so sicher. Schau einfach mal in der OH.
Achso, du wolltest nen Beispiel-Aufruf:
Delphi-Quellcode:
  decodeDays(myDays,getYears,getMonths,getDays);


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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