diff --git a/app/src/main/java/com/cyb3rko/techniklogger/data/HourMinute.kt b/app/src/main/java/com/cyb3rko/techniklogger/data/HourMinute.kt index bc5087f..09fc7a8 100644 --- a/app/src/main/java/com/cyb3rko/techniklogger/data/HourMinute.kt +++ b/app/src/main/java/com/cyb3rko/techniklogger/data/HourMinute.kt @@ -19,6 +19,12 @@ data class HourMinute( } } + fun hoursUntil(b: HourMinute): Float { + var difference = (b.millis - millis) + if (difference < 0) difference += 86400000 + return difference / 3600000f + } + companion object { internal fun fromString(hourMinute: String): HourMinute { val parts = hourMinute.split(":") diff --git a/app/src/main/java/com/cyb3rko/techniklogger/modals/TimePickerBuilder.kt b/app/src/main/java/com/cyb3rko/techniklogger/modals/TimePickerBuilder.kt index f815d9b..6e68337 100644 --- a/app/src/main/java/com/cyb3rko/techniklogger/modals/TimePickerBuilder.kt +++ b/app/src/main/java/com/cyb3rko/techniklogger/modals/TimePickerBuilder.kt @@ -67,13 +67,12 @@ internal class TimePickerBuilder { end = HourMinute(picker2.hour, picker2.minute) if (missionEnd != null && end > missionEnd) { activity.showWarningToast("Ende muss im Einsatz-Zeitraum liegen") - } else if (start >= end) { + } else if (start == end) { activity.showWarningToast("Ungültige Arbeitszeit erkannt") } else { val time = "$start - $end" - val duration = ((end.millis - start.millis).toFloat() / 3600000f) val floatFormat = DecimalFormat("#.#", DecimalFormatSymbols(Locale.ENGLISH)) - val roundedDuration = floatFormat.format(duration) + val roundedDuration = floatFormat.format(start.hoursUntil(end)) action(time, roundedDuration.toFloat()) } }