Jahre berechnen
Ich benötige eure Unterstützung
Ich habe 2 Datumsfelder (Geburtstag und Sterbetag) nun möchte ich in einem Berechnungsfeld das Alter anzeigen.
Im Berechnungsfeld habe ich folgende Formel eingegeben
if Verstorben then
Verstorben - Geburtstag
end
die Ausgabe sollte so aussehen Jahre / Monate
Danke für die Hilfe
4 Antworten
-
Hallo Rudolf, wenn es nicht taggenau sein muss, dann könnte diese Formel funktionieren (ohne Gewähr):
let myDays := days(Geburtstag, Todestag) / 365.25;
let myJahre := floor(myDays);
let myRest := myDays - floor(myDays);
let myMonate := floor(12 * myRest);
text(myJahre) + " / " + text(myMonate)
Ansonsten wird es wohl komplizierter. Ich wüsste jedenfalls so auf Anhieb keine Möglichkeit, das Ergebnis der einfachen Daten-Subtraktion in der gewünschten Form aufzubereiten.
-
Hallo Rudolf, den folgenden Code habe ich im englischsprachigen Forum gefunden (ist nicht von mir!). Damit läßt sich die Zeit zwischen zwei Daten in Jahren, Monaten und Tagen berechnen. Ich habe ihn mal eingedeutscht und mit Deinen Feldern Geburtsdatum und Sterbedatum versehen. Keine Garantie, aber ich denke, das stimmt so:
let D1 := if Geburtsdatum > today() then
today()
else
Geburtsdatum
end;
let D2 := if Geburtsdatum > today() then
Geburtsdatum
else
today()
end;
let DD := if day(D2) >= day(D1) then
day(D2) - day(D1)
else
day(date(year(D1), month(D1) + 1, 1) - 1) - day(D1) + day(D2)
end;
let MM := if month(D1) <= month(D2) then
month(D2) - month(D1)
else
12 - month(D1) + month(D2)
end;
let MMM := if day(D2) >= day(D1) then
MM
else
if MM = 0 then 11 else MM - 1 end
end;
let YY := if month(D2) > month(D1) then
year(D2) - year(D1)
else
if month(D2) < month(D1) then
year(D2) - year(D1) - 1
else
if day(D1) <= day(D2) then
year(D2) - year(D1)
else
year(D2) - year(D1) - 1
end
end
end;
if Geburtsdatum = null then
""
else
if YY = 0 then
""
else
if YY = 1 then
YY + " Jahr" + if MMM = 0 and DD = 0 then "" else ", " end
else
YY + " Jahre" + if MMM = 0 and DD = 0 then "" else ", " end
end
end + if MMM = 0 then
""
else
if MMM = 1 then
MMM + " Monat" + if DD = 0 then "" else ", " end
else
MMM + " Monate" + if DD = 0 then "" else ", " end
end
end + if DD = 0 then
""
else
if DD = 1 then DD + " Tag" else DD + " Tage" end
end
end -
Hallo Rudolf, kleine Fehler:
In Zeile 6 und 7 muss es natürlich heißen:
let D2 := if Sterbedatum > today() then
Sterbedatum -
Danke für die Unterstützung
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1294Ansichten