From eb2e18df202ad172e962a9056ac2fd57ee05a413 Mon Sep 17 00:00:00 2001 From: BlackyHawky Date: Sat, 16 Mar 2024 21:38:33 +0100 Subject: [PATCH] Solve the "todo" about sleep time calculation --- .../com/best/deskclock/bedtime/BedtimeFragment.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/best/deskclock/bedtime/BedtimeFragment.java b/app/src/main/java/com/best/deskclock/bedtime/BedtimeFragment.java index ab656c81c..940fa6019 100644 --- a/app/src/main/java/com/best/deskclock/bedtime/BedtimeFragment.java +++ b/app/src/main/java/com/best/deskclock/bedtime/BedtimeFragment.java @@ -150,13 +150,22 @@ public final class BedtimeFragment extends DeskClockFragment implements mHoursOfSleep = view.findViewById(R.id.hours_of_sleep); if (null != alarm) { - //TODO: what if someone goes to bed after 12 am int minDiff = alarm.minutes - mSaver.minutes; - int hDiff = alarm.hour + 24 - mSaver.hour; + int hDiff; + + if (mSaver.hour > alarm.hour || mSaver.hour == alarm.hour && mSaver.minutes > alarm.minutes) { + hDiff = alarm.hour + 24 - mSaver.hour; + } else if (mSaver.hour == alarm.hour && mSaver.minutes == alarm.minutes) { + hDiff = 24; + } else { + hDiff = alarm.hour - mSaver.hour; + } + if (minDiff < 0) { hDiff = hDiff - 1; minDiff = 60 + minDiff; } + String diff; if (minDiff == 0) { diff = hDiff + "h";