Ich habe es ja soweit das es für ein normalen tag reicht nur wenn die Zeitberechnung länger als ein Tag ist dann bekomme ich Minus ergebnisse.
Deswegen muss ich das Datum auch mit einbauen, ich wei im moment nur nicht wie.
Hier mein Code wie es ohne Probleme bis 24:00 Uhr läuft.
B4X:
'Von Uhrzeit
Dim von As Int = DateTime.TimeParse(UebergabeStartZeit)
'Bis Uhrzeit
Dim bis As Int = DateTime.TimeParse(DateTime.Time(DateTime.now))
'Ergebniss
Dim zeit As Period = DateUtils.PeriodBetween(von,bis)
UebergabeSollzeit = NumberFormat(zeit.Hours, 2, 0) &":"& NumberFormat(zeit.Minutes, 2, 0) &":"& NumberFormat(zeit.Seconds, 2, 0)
Das liegt wahrscheinlich in diesen beiden Zeilen: Dim von As Int = DateTime.TimeParse(UebergabeStartZeit)
Dim bis As Int = DateTime.TimeParse(DateTime.Time(DateTime.now))
Zeit-Ticks sind Long Variablen une keine Int?
Also: Dim von As Long = DateTime.TimeParse(UebergabeStartZeit)
Dim bis As Long = DateTime.TimeParse(DateTime.Time(DateTime.now))
Da du für Start und Endzeit korrekt Datum und Uhrzeit in einem Wert speicherst (DateTime.DateTimeParse) klappt es dann auch mit der der Periode der Nachbarin , Aeh... mit
PeriodBetween
So läuft es jetzt bei mir Super!
Bei Tagesüberschneidung werden dann die Tage mal 24 Stunden dazu gerechnet.
B4X:
'Von Uhrzeit
Dim von As Long = DateTime.DateTimeParse( UebergabeTagesdatum, UebergabeStartZeit)
'Bis Uhrzeit
Dim bis As Long = DateTime.Now
'Ergebniss
Dim zeit As Period = DateUtils.PeriodBetween(von,bis)
'Übergabe
UebergabeSollzeit = NumberFormat(zeit.Days*24 + zeit.Hours, 2, 0) &":"& NumberFormat(zeit.Minutes, 2, 0) &":"& NumberFormat(zeit.Seconds, 2, 0)