AGB  ·  Datenschutz  ·  Impressum  







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

Alter errechnung

Ein Thema von alixuszocker · begonnen am 23. Feb 2008 · letzter Beitrag vom 24. Feb 2008
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Alter errechnung

  Alt 23. Feb 2008, 13:11
Zitat von DeddyH:
Zitat von mkinzler:
Ich würde zuerst nur die Jahreszahlen betrachten und dann überprüfen welches der beiden Daten vorher ist und dementsprechend die Jahre dann anpassen
Genauso mache ich es ja in meinem Beispiel (allerdings nicht in .NET )
Sorry, deinen 1. Beitrag hab ich irgendwie übersehen
Markus Kinzler
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Alter errechnung

  Alt 23. Feb 2008, 14:43
Also wenn man nur das Alter in Jahren haben möchte, dann kann man die Schaltjahre vernachlässigen. Denn so lange lebt kein Mensch, als dass es aufgrund der Schaltjahre zu einem Rechnungsfehler von z.B. einem Jahr kommt Man muss bei der Division durch 365 einfach nur die Nachkommastellen vernachlässigen bzw. immer auf eine glatte Zahl auf oder abrunden.
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Alter errechnung

  Alt 23. Feb 2008, 14:46
Du hast mich nicht verstanden. Wenn man z.B. am 20.03. Geburtstag hat, kommt bei Nichtberücksichtigung von Schaltjahren am 19.03. evtl. das falsche Ergebnis heraus, wenn man einfach die Anzahl der Tage durch 365 teilt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#14

Re: Alter errechnung

  Alt 23. Feb 2008, 15:50
Ich dachte, nach so vielen Beiträgen wäre die vollständige Lösung schon dabei. Nun ja...

Vorausgesetzt, dass wirklich nach einer NET-Lösung gefragt wird, kann man direkt mit Monat und Tag vergleichen:
Code:
DateTime geburtstag = ...
DateTime vergleich = DateTime.Today();
int alter = vergleich.Year - geburtstag.Year;
// korrigieren, wenn im aktuellen Jahr noch kein Geburtstag war
if (  (geburtstag.Month > vergleich.Month)
   || (geburtstag.Month == vergleich.Month && geburtstag.Day > vergleich.Day) )
  alter--;
(und das in Delphi zu schreiben statt in C#, überlasse ich Euch).

Das Ganze kann man natürlich auch mit mehrfachem Vergleich von IsLeapYear für Geburtstag und Heute machen; aber ich glaube, dieser Weg ist kürzer und einfacher.

Gruß Jürgen

PS. Sorry, ich stelle gerade fest, dass DeddyH in #4 und mkinzler in #7 dasselbe Verfahren meinten. Mein Beitrag dient also nur dazu, eine NET-Lösung zu schreiben und nicht nur zu skizzieren.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Alter errechnung

  Alt 23. Feb 2008, 16:45
So geht's richtig (so wie es mkinzler schon angedeutet hat und natürlich auch DeddyH):
akt. Datum und Geburtstag nach Jahr,Monat und Tag zerlegen. (DecodeDate()-Funktion)
Alter = AktJahr-GebJahr;
Jetzt muss man noch prüfen, ob man dieses Jahr schon Geburtstag hatte.
Falls nicht, muss ein Jahr vom Alter abgezogen werden.
Delphi-Quellcode:
if (GebMonat*100+GebTag) > (AktMonat*100 + AktTag) then
  Dec(Alter);
// anstelle der Zahl 100 hätte man jede Zahl >= 31 nehmen können
// Hardcode Programmierer würden hier 32 nehmen und als "shl 5" einbauen
  Mit Zitat antworten Zitat
alixuszocker

Registriert seit: 21. Feb 2008
3 Beiträge
 
#16

Re: Alter errechnung

  Alt 24. Feb 2008, 14:47
Sry leute ich muss mich verbessern ich habe win32 ichw erde mich gleich mal rann machen und schauen ob ich was hinbekomme
  Mit Zitat antworten Zitat
alixuszocker

Registriert seit: 21. Feb 2008
3 Beiträge
 
#17

Re: Alter errechnung

  Alt 24. Feb 2008, 14:53
gut ich habe es hin bekommen ich wollte mich herzlich bedanken.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:08 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