Mit beiligendem GuiXT Script könnt Ihr die Differenz in Tagen, Stunden, Minuten und Sekunden berechnen.

Als Grundlage dient ein date1 und time1 sowie date2 und time2, basierend darauf wird dann die Differenz errechnet.

 

// Berechnung von Zeitdifferenzen inkl. der Angabe von dem Datum
Set V[date1] "30.09.2020"
Set V[time1] "06:16:37"

 

Set V[date2] "30.09.2020"
Set V[time2] "06:16:57"

 

// Wir wandeln die Zeiten alle in Sekunden um
Set V[sec1_h] "&V[time1](1,2)" * 3600
Set V[sec1_m] "&V[time1](4,5)" * 60
Set V[sec1_s] "&V[time1](7,8)"
Set V[sec1] &V[sec1_h] + &V[sec1_m]
Set V[sec1] &V[sec1] + &V[sec1_s]

 

Set V[sec2_h] "&V[time2](1,2)" * 3600
Set V[sec2_m] "&V[time2](4,5)" * 60
Set V[sec2_s] "&V[time2](7,8)"

 

Set V[sec2] &V[sec2_h] + &V[sec2_m]
Set V[sec2] &V[sec2] + &V[sec2_s]

 

// Berechnung Differenz in Sekunden
Set V[sec_diff] &V[sec2] - &V[sec1]

 

// Differenz Datum in Tagen
Set V[date_diff] &V[date2] - &V[date1]

 

// Differenz in Tagen in Sekunden umgerechnet
Set V[sec_diff_date] &V[date_diff] * 86400
Set V[sec_diff] &V[sec_diff] + &V[sec_diff_date]

 

if V[sec_diff<0]
Set V[diff] "Negativ"
Set V[sec_diff_abs] &V[sec_diff] * -1
else
Set V[diff] "Positiv"
Set V[sec_diff_abs] &V[sec_diff]
endif

 

Set V[tage] 0
Set V[stunden] 0
Set V[minuten] 0

 

// Falls Differenz > als 86400, so haben wir mind 1 Tag Differenz
if V[sec_diff_abs=86400] or V[sec_diff_abs>86400]
// Berechnung der Anz. Tage
Set V[tage] &V[sec_diff_abs] / 86400 Decimals=9 DecimalSeparator="." Groupseparator=""
Set V[tage] &V[tage] Pattern="%."
// Subtraktion der Tage in Sekunden dem restlichen Differenzwert
Set V[tage_in_sec] &V[tage] * 86400
Set V[sec_diff_abs] &V[sec_diff_abs] - &V[tage_in_sec]
endif

 

// Falls Differenz > als 3600, so haben wir mind 1 Std
if V[sec_diff_abs=3600] or V[sec_diff_abs>3600]
// Berechung der Anz. Stunden
Set V[stunden] &V[sec_diff_abs] / 3600 Decimals=9 DecimalSeparator="." Groupseparator=""
Set V[stunden] &V[stunden] Pattern="%."
// Subtraktion der Stunden in Sekunden dem restlichen Differenzwert
Set V[stunden_in_sec] &V[stunden] * 3600
Set V[sec_diff_abs] &V[sec_diff_abs] - &V[stunden_in_sec]
endif

 

// Falls Differenz > als 60, so haben wir mind 1 Minute
if V[sec_diff_abs=60] or V[sec_diff_abs>60]
// Berechung der Anz. Minuten
Set V[minuten] &V[sec_diff_abs] / 60 Decimals=9 DecimalSeparator="." Groupseparator=""
Set V[minuten] &V[minuten] Pattern="%."
// Subtraktion der Minuten in Sekunden dem restlichen Differenzwert
Set V[minuten_in_sec] &V[minuten] * 60
Set V[sec_diff_abs] &V[sec_diff_abs] - &V[minuten_in_sec]
endif

 

// Ausgabe der Differenz als Meldung
Message "Differenz &V[diff]\nD:&V[tage]\nH:&V[stunden]\nM:&V[minuten]\nS:&V[sec_diff_abs]"

 

Empfehlen