Domino 9 und frühere Versionen > ND8: Entwicklung

Alter von Personen berechnen - Fehler im persönlichen Notesadressbuch ?

(1/4) > >>

udo187:
Hallo

Ich bin gerade beim Erstellen einer Ansicht, die das aktuelle Alter von Mitarbeitern zeigen sollte,
auf die "Problematik"der Altersberechnung gestoßen.

In alten Forumsbeiträgen gibt es verschiedene Lösungen bzw. Hinweise auf die Geburtstagsberechnung im persönlichen Adressbuch.

Hinweis: Aktuelle Datum ist der 27.02.2013

Beim Testen der Formel im persönlichen Adressbuch wird aber das Alter falsch berechnet, wenn das Geburtsdatum
z.B. der 28.02.1973 ist . Richtigerweise müßte als Alter 39 ausgegeben werden, es wird aber mit 40 berechnet.
Bei Eingabe des Geburtsdatum z.B. mit 01.03.1973 wird es korrekt mit 39 berechnet.
Dies passiert auch bei Schaltjahren, z.B. 28.02.1996, das Alter wird mit 17 anstatt 16 berechnet.


Das gleiche Ergebnis ergibt die Formel von Bernhard (http://atnotes.de/index.php/topic,18281.0.html)

_Age1 := @Year (Actdate) - @Year (Birthday);
@If (@Date (@Year (ActDate); @Month (Birthday); @Day (Birthday)) > ActDate; _Age1 - 1; _Age1)


Hat jemand eine Idee warum das Alterfalsch berechnet wird ?

Notesversion 8.5.2 FP2



Danke & Gruß
Udo

koehlerbv:
Geburtstag: 28.2.1973
Stichtag: 27.2.2013

Bei mir ergibt meine Formel 39. Muss ja auch.


--- Zitat ---_Age1 := @Year (Actdate) - @Year (Birthday);
Age2 := @If (@Date (@Year (ActDate); @Month (Birthday); @Day (Birthday)) > ActDate; _Age1 - 1; _Age1);

@Prompt ([Ok]; "Age"; @Text (Age2))
--- Ende Zitat ---

Bernhard

udo187:
hmm - bei mir nicht  ???

Wird es bei dir im Adressbuch auch korrekt berechnet ?

Udo

koehlerbv:
1. Sag mal Deine Formel an.
2. Nein.

Bernhard

udo187:
OK, das ist schon mal gut (bzw. schlecht) dass der Fehler zumindest im Adressbuch nicht nur bei mir auftritt  :)

Meine Formel:

_AmGeb := AmGeb;

REM {Aktuelles Datum sprachabhängig};
_AktDatum1 := @TextToTime("Heute");
_AktDatum2 := @TextToTime("Today");
_AktDatum := @If(_AktDatum1 > [01.01.1900]; _AktDatum1;_AktDatum2 );

_Alter := @Year (_AktDatum) - @Year (_AmGeb);
_AlterFinal := @If ( @Date ( @Year ( _AktDatum ); @Month( _AmGeb);@Day ( _AmGeb)) > _AktDatum ; _Alter - 1 ; _Alter );
_AlterFinal

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln