Domino 9 und frühere Versionen > Entwicklung
Stichtagsberechnungen
KiTaMann:
Hallo zusammen,
ich möchte, dass die in meiner Tageseinrichtung registrierten Kinder automatisch ein errechnetes Abgangsdatum erhalten.
Also alle Kinder, die am 31.07. eines Jahres älter als 6 Jahre sind, sollen als potentielle Abgänger angesehen und das Feld "Abgangsdatum" automatisch ausgefüllt werden.
Ich habe zunächst das aktuelle Alter der Kinder berechnet, und zwar mit der Formel:
y:=@If ( @IsTime(gtag) ; @Year(@Today) - @Year(gtag); 0 ) ;
m:=@If ( @IsTime(gtag) ;@Month(@Today)-@Month(gtag);0);
d:=@If ( @IsTime(gtag) ;@Day(@Today)-@Day(gtag);0);
@If ( @IsTime(gtag) ;@Text(y+@If ( m < 0 ; -1 ; m > 0 ; 0 ; d < 0 ; -1 ; 0 ))+","+@Text(@If(m < 0;12 + m;m=0 & d < 0; 11; m)) ; "" )
im Feld "effalter".
Jetzt habe ich allerdings Schwierigkeiten, dieses berechnete Alter auf den Zeitpunkt anzupassen, an dem das jeweilige Kind zum angegebenen Stichtag "31.07." auch tatsächlich 6 Jahre alt ist.
Vielleich habe ich mich mit der o.a. Formel auch selbst ein wenig "schwindlig gespielt" und das Maifest steckt mir noch in den Knochen.
Hat jemand einen Lösungsvorschlag, mit dem ich weiterkomme?
Rob Green:
Du meinst
"bis spätestens zum 31.07. müssen die Kinder 6 Jahre alt sein, damit sie als Abgänger geflagged werden." ?
Dann würde ich rechnen...
--- Code: ---vStichtag:=@Date(2000; 7; 31);
vResult:=
@If(
@Month(vStichtag) > @Month(Feld_GT); @Year(@Today) - @Year(Feld_GT);
@If(@Day(vStichtag) > @Day(Feld_GT); (@Year(@Today) - @Year(Feld_GT)) - 1;@Year(@Today) - @Year(Feld_GT))
) ;
FIELD B2:=vResult;
void
--- Ende Code ---
Zuerst checked die Formel, ob der Monat vom Stichtag (immer "7") größer ist als der Geburtsmonat des Kindes.
Wenn ja, ist die Rechnung Jahr_Jetzt % Jahr_Geburtstag.
Wenn nein, ist die Rechnung Jahr_Jetzt % Jahr_Geburtstag % 1, wenn zusätzlich der Stichtag 31 größer als der Tag des Geburtstags des Kindes ist (zB der 22. ). Das trifft eigentlich immer zu, denn mehr als 31 geht ja nit. Doch zur Sicherheit ists ok.
Wenn als im GT Feld 03.03.97 steht, wird ins Feld "B2" = 6 ausgespuckt. Wenn im Feld GT 01.08.97 steht, wird ins Feld "B2" = 5 ausgegeben. Wenn im Feld GT 03.03.96 steht, kommt ins B2 = 7. Wenn im Feld GT 01.08.96 steht, kommt ins B2 = 6 rein.
Mit diesem Cut "6" oder nicht, kannste dann arbeiten, weil ganz verstanden hatte ich nicht, ob Du nun das Alter willst, oder das Geburtsdatum diesen Jahres ;D ;D, wegen Deiner Aussage
--- Zitat ---"Jetzt habe ich allerdings Schwierigkeiten, dieses berechnete Alter auf den Zeitpunkt anzupassen, an dem das jeweilige Kind zum angegebenen Stichtag "31.07." auch tatsächlich 6 Jahre alt ist."
--- Ende Zitat ---
KiTaMann:
Hast ja Recht und ich hab mich da wohl 'n bisschen blöd ausgedrückt.
Und Danke für die geniale Formel, sie rechnet mir aber nur das Alter zum bestimmten Stichtag aus.
Was ich tatsächlich benötige, kommt eigentlich aus der anderen Richtung, nämlich folgendes (bißchen Prosa):
Ein Kind kommt zur Anmeldung.
Nach Angabe des Geburtsdatum rechnet mir meine Formel das effektive Alter des Kindes aus.
Jetzt will ich, dass automatisch das voraussichtliche Abgangsdatum ausgerechnet wird.
Das ist immer der 31.07. und zwar der erste, an dem das Kind bereits 6 Jahre alt ist.
Rob Green:
ja ok, aber ich sehe nicht mehr, wo nun das Problem liegt, weil Du obige Formel mit dr Logik nun einfach umdrehen mußt.
KiTaMann:
Stimmt!
Also heute ist irgendwie überhaupt nicht mein Tag...
... vielleicht sollte man ja einfach schon mal Feierabend machen
Ich dank Dir vielmals!
Schönes Wochenende!
KiTaMann
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln