Anzahl Monate vom Startdatum bis heute

  • Hallo,


    ich muß aus einem Startdatum bis heute die Anzahl Monate zur Anzeige im Dokument bringen. Leider weiß ich nicht wie ich das anstellen soll. Kann mir jemand auf die Sprünge helfen?


    Vielen Dank im Voraus!

  • Hi,


    evtl. was in der Richtung:


    (@year(startdatum) - @year(@today)) * 12 + @month(startdatum) - @month(@today)

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

    • Offizieller Beitrag

    lodsnods
    die Formel funktioniert nicht immer. Setze mal als Startdatum "01.10.2004" und als Today "01.02.2005" ein.


    Besser ist es so vorzugehen


    (@Year(EndDatum) * 12 + @Month(EndDatum)) -
    (@Year(StartDatum) * 12 + @Month(StartDatum))


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Zitat


    Diali schrieb:
    lodsnods
    die Formel funktioniert nicht immer. Setze mal als Startdatum "01.10.2004" und als Today "01.02.2005" ein.


    Habe ich gemacht. Wo ist das Problem? Als Differenz erhalte ich 4 Monate - ich hab's gerade an meinen Fingern abgezählt - es stimmt. Evtl. irritiert Dich das Vorzeichen. Das ist aber nur eine Frage des Standpunktes, von dem aus man die Differenz berechnet. Wenn es Dich stört dann nimm das Ergebnis mal -1 oder negiere die gesamte Formel zu:


    (@year(startdatum) - @year(@today)) * 12 + @month(startdatum) - @month(@today)
    ==> @month(@today) - @month(startdatum) - (@year(startdatum) - @year(@today)) * 12


    PS: Unsere Formeln sind übrigens identisch - wenn Du Meine ausmultiplizierst und umsortierst kommt genau Deine Formel raus.


    PPS: Meine ist aber um einige Taktzyklen "schneller", da ich mit einer Multiplikation auskomme. Jeder Assemblerprogrammierer wird Dir dies bestätigen :lol: :lol: :lol:

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

    • Offizieller Beitrag

    lodsnods
    Sorry hatte da beim Probieren wahrscheinlich ein Fehler drin :(


    Mathematisch entspricht Deine Formel sogar meiner :)
    x = (ys - ye) * 12 + (ms - me)
    x = 12 ys - 12 ye + ms - me
    x = 12 ys + ms - 12 ye - me
    x = 12 ys + ms - (12 ye + me)


    /*edit*
    PPS:
    da bleibt ja mehr Zeit für ein :pint: :D:D:D


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Das mit der Tagesdifferenz ist die häufigste Form zwei Datumswerte zu vergleichen und von daher: ein kurzer Blick in die Designer-Hilfe und du hättest u.a. das gefunden:


    Zitat

    Tipp - Um die Differenz zwischen zwei Datumsangaben zu ermitteln, subtrahieren Sie sie. Das Ergebnis wird in Sekunden zurückgegeben. Um aus dem Ergebnis die Anzahl der Tage zu ermitteln, dividieren Sie das Ergebnis durch 86.400 (Anzahl der Sekunden pro Tag). Wenn beispielsweise das Datumsfeld "Datum1" [01.07.2001] und das Datumsfeld "Datum2" [05.07.2001] enthält, können Sie mit folgender Formel die Differenz in Tagen zwischen beiden Datumsangaben ermitteln:


    (Datum2-Datum1)/86400