AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfe Datum ob älter als ein Jahr

Ein Thema von LokutusvB · begonnen am 15. Jul 2009 · letzter Beitrag vom 16. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 13:23
Hallo Leute,

wie man die Differenz zweier Daten berechnen kann, darüber findet man viele Informationen im Netz. Aber vielleicht geht das ja auch total einfach ohne Schaltjahrberücksichtigung, Umrechnungen usw. .

Ich habe ein gegebenes Datum und das aktuelle Datum. jetzt möchte ich einfach prüfen, ob das gegebene Datum älter als ein Jahr ist, genau ein Jahr oder eben noch nicht ein Jahr vergangen ist.

Spontan fällt mir als einfachste Möglichkeit ein, Jahr, Monat und Tag zu vergleichen geht. Geht das auch anders und einfacher?
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 13:27
Also wenn du Schlatjahre nicht berücksichtigen willst, dann nimm das Datum als TDateTime und prüfe deren Differenz (Ganzzahlanteil = Tage)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 13:32
Eben wegen dieser Schaltjahrproblematik (man findet oft Berechnungen mit 365,25) ist mir pauschal nur die Lösung mit Vergleich Jahr, Monat und Tag eingefallen. Da das ganze für Garantiezwecke benötigt wird, müßte ich das Schaltjahr einbeziehen bzw. irgendwie umgehen können. Das habe ich im ersten Beitrag etwas unglücklich ausgedrückt.
MFG
LokutusvB
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#4

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 13:35
Du wirst nicht drum rum kommen, Schaltjahrprüfungen durchzuführen, denke ich
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 13:49
Schau mal hier:
http://www.delphipraxis.net/internal...039188#1039188
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
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 14:02
Danke Wolfgang Mix, die Berechnung ist super und einfach . Ist die 4. Stelle eine 0, dann ist noch kein Jahr vergangen, ansonsten eben X Jahre. Ich hätte es etwas umständlicher vorgehabt und Tage, Monate und Jahre gesondert betrachtet.

Also nochmals Danke!
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 14:08
Gerne wieder,
hatte gehofft, der Mod würde den Code in der Code-Library ablegen.
Dann wäre er leichter zu finden.
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
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#8

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 14:23
Zitat von Wolfgang Mix:
Gerne wieder,
hatte gehofft, der Mod würde den Code in der Code-Library ablegen.
Dann wäre er leichter zu finden.
Hallo,

klar, was nicht VCL ist, ist hier unerwünscht.

Ich benutze bisher für etwas allgemeinere Fälle die C-Funktion julian, die für Tag, Monat, Jahr einen Longint zurückliefert in Tagen unter Berücksichtigung von Schaltjahren. 2 mal angewendet und subtrahiert ergibt den Abstand in Tagen. Ich würde dann einfach 365 Tage Garantie geben, es ist doch sehr unwahrscheinlich, dass es gerade auf diesen einen Tag ankommt, und falls doch, wird sich der Kunde beschweren. Da das aber in C formuliert ist, kann es hier auch nicht veröffentlicht werden. Es gibt aber Leben ausserhalb Delphi.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 14:29
Schau mal in der Online Hilfe von Delphi unter YearsBetween bzw. YearSpan nach, ob Du damit ans Ziel kommst.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Prüfe Datum ob älter als ein Jahr

  Alt 15. Jul 2009, 15:25
[quote="Reinhard Kern"]
Zitat von Wolfgang Mix:
Gerne wieder,
hatte gehofft, der Mod würde den Code in der Code-Library ablegen.
Dann wäre er leichter zu finden.
Hallo,

klar, was nicht VCL ist, ist hier unerwünscht.

Ich benutze bisher für etwas allgemeinere Fälle die C-Funktion julian, die für Tag, Monat, Jahr einen Longint zurückliefert in Tagen unter Berücksichtigung von Schaltjahren.

Code fuer den julianischen Tag sind mit Vorsicht zu geniessen.
Man muss prüfen, ob der Ubergang vom 4.10.1582 auf 15.10.1582 korrekt behandelt wird.
Bei durchgängiger Tageszählung gelten noch die älteren Schaltjahresregeln.
Somit ist mein Code sicherer
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
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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