0

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

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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.

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Rudolf, kleine Fehler:
    In Zeile 6 und 7 muss es natürlich heißen:
    let D2 := if Sterbedatum > today() then
    Sterbedatum

    • Rudolf_Schabl
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke für die Unterstützung 

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 4Antworten
  • 1284Ansichten