Domino 9 und frühere Versionen > ND6: Entwicklung
Alter berechnen
billygates:
Oder auch so (als Formel in einem berechneten Datumsfeld):
datum := [21.10.1959];
tmp1 := @Date(@Year(@Now);@Month(datum);@Day(datum));
tmp2 := (@Now-tmp1)/86400;
tmp3 := @Year(@Now) - @Year(datum);
@If(tmp2 > -1; tmp3; tmp3 - 1)
koehlerbv:
Achtung - in unten stehender Formel ist ein böser Bug!
Im Beitrag 21 http://atnotes.de/index.php?PHPSESSID=7594h1jjplgptfnvqalc3tcal4&topic=18281.msg359788#msg359788
wird eine korrigierte Fassung dargestellt und auf das Verhalten von @Date, dem 29. Februar und Nicht-Schaltjahren hingewiesen.
BK, 28.02.2013
Warum nicht als Zweizeiler? ;)
BirthDay sei das Feld mit dem Geburtsdatum, ActDate das Feld mit dem aktuellen Bezugsdatum (was man ggf. durch @Today ersetzen kann). Age ist (in diesem Fall) das berechnete Feld zur Ausgabe des Alters.
Die erste Zeile des berechneten Feldes prüft zunächst, ob man überhaupt etwas berechnen kann. Dies ist ebenso in einer Aktion mit Ausgabe via @Prompt verwendbar.
Die zweite Zeile berechnet stur das die Jahre von Birthdate bis ActDate. Dumm, wenn Birthday = 11.07.1990 und ActDate = 19.01.2008 - die Person ist dann (ungerechtfertigterweise) schon wehrdienstpflichtig.
Die zweite Zeile normiert Birthday dann auf das Jahr von ActDate (aus 11.07.1990 wird so 11.07.2008), vergleicht dies mit ActDate und reduziert das Alter dann gegebenenfalls um ein Jahr. Ergebnis: Mein Sohn darf heute noch nicht zum Bund einberufen werden ;D
--- Code: ---@If (!@IsTime (Birthday) | !@IsTime (ActDate); @Return (Age); "");
_Age1 := @Year (Actdate) - @Year (Birthday);
@If (@Date (@Year (ActDate); @Month (Birthday); @Day (Birthday)) > ActDate; _Age1 - 1; _Age1)
--- Ende Code ---
Bernhard
PS: Mehr dazu auf dem EntwicklerCamp am 27. Februar 2008
billygates:
Zweizeiler??? Also ich kann zählen und komme auf 3! :)
klaussal:
Wenn man bei 0 anfängt zu zählen, dann passt es wieder... :P
koehlerbv:
Die erste Zeile gehört ja "eigentlich" nicht dazu und dient nur der Ordnung und Sauberkeit im Schlachthof ;)
Und Zeile 2 kann man mit Zeile 3 kombinieren (und dann das Konstrukt aus der neuen Zeile statt der "" in der ersten Zeile einsetzen. Dann hat man einen Einzeiler (kann ihn aber nicht mehr lesen ;D)
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln