Vielmals ist es für den menschlichen Verstand sinnvoller Zeiträume in Tagen und Stunden anzugeben.
Wenn man in FileMaker die Differenz zweier Zeitstempel berechnet, erhält man die Zeitspanne in Sekunden.
Beginn: 01.01.2018 08:00:00
Ende: 02.01.2018 08:00:00
LiesAlsZeitstempel( "02.01.2018 08:00:00" ) - LiesAlsZeitstempel( "01.01.2018 08:00:00" )
ergibt in FileMaker 24:00:00
Wenn um diesen Ausdruck die Funktion LiesAlsZahl()
gespannt wird, wird der Wert in Sekunden dargestellt: 86400
86400 Sekunden entspricht 24 Stunden => 1 Minute = 60 Sekunden; 60 Minuten = 1 Stunde => 60 * 60 = 3600 => 1 Stunde ==> 86400 / 3600 = 24 Stunden
Wir möchten nun wissen wie viel Tage dies entspricht, hierzu müssen die Stunden durch die Konstante 24 dividiert werden.
24 / 24 = 1 => 1 Tag
Sollten wir nun statt am 02.01.2018 08:00:00 erst am 04.01.2018 12:00:00 das Ende erreicht haben, dann müssen wir den Rest-Wert (Modulo) von 24 berechnen.
Liesalszahl( LiesAlsZeitstempel( "04.01.2018 12:00:00" ) - LiesAlsZeitstempel( "01.01.2018 08:00:00" ) )
ergibt 273600 Sekunden => 273600 / 3600 = 76 Stunden
Berechnung:
1) 76 / 24 = 3,16666
2) 76 % (Modulo) 24 = 4
Da der Restwert (2) die Nachkommastellen von 1 repräsentieren, ist die Zahl vor dem Komma die Anzahl der Tage.
Ergebnis:
3 Tag(e) und 4 Stunden
FileMaker-Formel
Funktionsname: TageStunden
Parameter: Zeitstempel_Start, Zeitstempel_Ende
SetzeVar([ stunden = LiesAlsZahl(LiesAlsZeitstempel( Zeitstempel_Ende ) - LiesAlsZeitstempel( Zeitstempel_Start )) / 3600 ; konstante = 24 ]; NächsteKleinereGanzzahl ( stunden / konstante) & " Tag(e) " & Mod( stunden ; konstante) & " Stunden" )