![]() |
Tage in Jahre
Holla
Ich hab folgendes Porblem:
Code:
so der gibt mir nun die differenz in Tagen zurück, aber ich finde keine Lösung es in Jahre auszugeben, geht das überhaupt? Von wegen Schaltjahr etc.
var
d: Tdatetime; i: integer; begin d := Query1.FieldByName('date').AsDateTime; i := Round(now - d); edit2.Text := intToStr(i) Cya The Re@l |
rechne es doch einfach um 1 jahr hat 365 tage (abgesehen vom schaltjahr). brauchst doch also nur das ergebniss durch 365 teilen!
edit: das mit dem schaltjahr hatte ich überlesen gruss haegar |
das dumme ist das ich es als erinnerungsFunktion einbauen wollte der mir direkt sagt wie alt die Person ist, aber wenn ich durch 365 teile kommt die rechnung nich aus.
|
ich hab noch ne idee, wird aber vielleicht umständlicher als nötig.
alle 4 jahre (1460 Tage) haste ein tag mehr pro jahr. kannste da nicht rekursiv rechnen und immer prüfen ob irgendwas (hab noch nicht ganz gefunden was) durch 1460 gleich 0 als rest liefert...dann haste schaltjahr, und deine tage im jahr sind nun 366 und wenn der rest<>0 ist, dann 365 tage! einigermaßen verstanden? :roll: gruss haegar |
jop verstanden klingt auch logisch ich setz mich mal ran :coder:
Dank dir erstmal |
kannste mir die lösung dann mal zeigen? würd mal gern sehen was ich da verbrochen hab ;))
gruss haegar |
Ich hab mir gerade noch was anderes überlegt, das, glaub ich, einfacher ist.
Und zwar lasse ich die Datums vergleichen, wenn Tag und Monat identisch ist, soll er mir ne Meldung machen und vom Jahr die Differenz ausgeben. |
So funktionierts
Code:
das war doch so wie du meintest @ haegar, oder?
var
datum1, datum2: TDatetime; i: Integer; begin IF DBEdit10.Text <>'' then begin datum1:= Query1.FieldByName('date').AsDateTime; datum2:=now; i := round(datum2-datum1); i := (i * 4); edit2.text := (intToStr(i Div 1461)) + ' jahre'; end else begin edit2.Text := ''; end; end; |
Hallo,
mal daran gedacht die Funktion YearOf() function YearOf(const AValue: TDateTime): Word; Die Funktion gibt das Jahr zurück, das von einem TDateTime-Wert repräsentiert wird. Zusammen mit: function DayOfTheYear(const AValue: TDateTime): Word; Die Funktion gibt die Anzahl der Tage zwischen dem angegebenen TDateTime-Wert und dem 31. Dezember des vorhergehenden Jahres an. Sollte dies doch auch das Problem lösen? Gruß Wolfgang |
also wie gesagt so ne richtig fertige vorstellung hatte ich davon noch nicht, aber ob das mit dem rekursiv überhaupt nötig/praktisch gewesen wäre bezweifel ich selbst ;)
gruss haegar |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz