aufgerundete Monatsberechnung
Hallo liebe Ninox Anwender,
habe folgendes Problem wenn ich von 28.3..2017 bis 01.04.2018 die aufgerundeten Monate haben möchte also (13 Monate, dann kommt bei mir eine Komma Zahl raus (12,098360655737705)
Die derzeitige Formel lautet:
if not bis or bis > today() then
number(today() - von) / 2635200000
else
number(bis - von) / 2635200000
end
Hat wer ein Tipp was ich hier ändern muss, damit 13 Monate da steht ?
LG Christian
12 Antworten
-
Hallo Christian, vielleicht hilft dir der folgende Thread weiter?
-
Hallo, nein klappt leider noch nicht. Aber vlt war meine Beschreibung auch noch nicht gut genug.
Also wenn ich von 28.03.2017 bis 27.03.2018 auswerte sollten 12 Monate rauskommen
Wenn ich aber vom 28.03.2017 bis 01.04.2018 auswerte sollten 13 Monate rauskommenInteressanterweise fürs Jahr habe ich eine Formel die Funktioniert. Allerdings rechnet die Formel bis heute und nicht in einem ausgewähltem Zeitraum
Formel: age(min(von))
Hat wer noch eine idee?
-
Okay, man könnte das " + 1" bei den Monaten einfach weglassen und die Jahre mit 12 multiplizieren:
let Monate := month(Ende) - month(Anfang);
let Jahre := year(Ende) - year(Anfang);
if Monate < 0 then
Monate := 12 + Monate;
Jahre := Jahre - 1
end;
Jahre * 12 + Monate
-
Hallo Christian,
wenn man die Formel von Copytexter modifiziert, dann sollte es funktionieren:
---
let Monate := month(Ende) - month(Anfang);
let Jahre := year(Ende) - year(Anfang);
if Monate < 0 then
Monate := 12 + Monate;
Jahre := Jahre - 1
end;
Monate + 12 * Jahre---
Leo
-
Danke Copytexter für den Anfang und Danke Leo für die Modifizierung. Jetzt klappt es :)
-
Eine kleines anliegen habe ich noch, bisher war es so, dass wenn ich im Datumsfeld (Bis) nichts drin stehen hatte automatisch mit dem heutigen Datum gerechnet habe.
Das sah so aus.if not 'Rechner bis' or 'Rechner bis' > today() then
floor(number(today() - 'Rechner von') / 2635200000)
else
number('Rechner bis' - 'Rechner von') / 2635200000
endbesteht die Möglichkeit diese Funktion mit der anderen zu vereinen? Habe eben mein Glück probiert, aber ich habe leider zu wenig Programmierkenntnisse dazu.
-
Einfach den Namen des Datumsfeldes 'Ende' gegen die Datumsangabe today() austauschen:
let Monate := month(today()) - month(Anfang);
let Jahre := year(today()) - year(Anfang);
if Monate < 0 then
Monate := 12 + Monate;
Jahre := Jahre - 1
end;
Jahre * 12 + Monate
-
klappt leider noch nicht.
Der Wunsch wäre, wenn nichts drin steht mit dem heutigen Datum gerechnet wird.
Wenn aber ein begrenztes Datum aus der Vergangenheit drin steht, dass dann nur mit diesem gerechnet wird. -
Was genau heißt denn "klappt nicht"? Ist das berechnete Ergebnis falsch?
-
es schreibt immer das Ergebnis für das heutige Datum rein
-
Okay, neuer Versuch:
let myBis := if 'Rechner bis' >= 'Rechner von' then 'Rechner bis' else today() end;
let Monate := month(myBis) - month('Rechner von');
let Jahre := year(myBis) - year('Rechner von');
if Monate < 0 then
Monate := 12 + Monate;
Jahre := Jahre - 1
end;
Jahre * 12 + Monate
-
jab das hat geklappt, Besten Dank für die Unterstützung, echt cool von euch, freut mich voll. Mercí und ein schönes Wochenende :)
Content aside
-
1
„Gefällt mir“ Klicks
- vor 4 JahrenZuletzt aktiv
- 12Antworten
- 1048Ansichten