From 7856aba24da8d7b5731a409bde277c00b0c084c9 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel <> Date: Sun, 23 Aug 2020 18:12:03 +0200 Subject: [PATCH] refactor(schedule-week): minor TimeSlot refactor --- src/Utils/Schedule/Week.hs | 10 +++++----- src/Utils/Schedule/Week/TimeSlot.hs | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Utils/Schedule/Week.hs b/src/Utils/Schedule/Week.hs index 1fe3dd8f5..1577a3276 100644 --- a/src/Utils/Schedule/Week.hs +++ b/src/Utils/Schedule/Week.hs @@ -113,11 +113,11 @@ weekSchedule uid dayOffset = do seOccurrenceIsInSlot :: Day -> TimeSlot -> ScheduleEntryOccurrence -> Bool seOccurrenceIsInSlot day slot = \case - Right occurrence -> occStart `isInTimeSlot` (day, slot) where - occStart = case occurrence of - Right ScheduleWeekly{..} -> (scheduleDayOfWeek `dayOfWeekToDayWith` now, scheduleStart) - Left ExceptOccur{..} -> (exceptDay, exceptStart) - Left ExceptNoOccur{exceptTime=LocalTime{..}} -> (localDay, localTimeOfDay) + Right occurrence -> occDay == day && occTime `isInTimeSlot` slot where + (occDay,occTime) = case occurrence of + Right ScheduleWeekly{..} -> (scheduleDayOfWeek `dayOfWeekToDayWith` now, scheduleStart) + Left ExceptOccur{..} -> (exceptDay, exceptStart) + Left ExceptNoOccur{exceptTime=LocalTime{..}} -> (localDay, localTimeOfDay) Left ScheduleEntryExamOccurrence{..} -> let slotUTCTime = timeSlotToUTCTime tz day slot nextSlotUTCTime = timeSlotToUTCTime tz day (slot+slotStep) in slotUTCTime <= seeoStart diff --git a/src/Utils/Schedule/Week/TimeSlot.hs b/src/Utils/Schedule/Week/TimeSlot.hs index 595c6dc41..72afb0a10 100644 --- a/src/Utils/Schedule/Week/TimeSlot.hs +++ b/src/Utils/Schedule/Week/TimeSlot.hs @@ -21,9 +21,10 @@ slotStep = 2 slotsToDisplay :: [TimeSlot] slotsToDisplay = [firstSlot,firstSlot+slotStep..lastSlot] -isInTimeSlot :: (Day, TimeOfDay) -> (Day, TimeSlot) -> Bool -isInTimeSlot (day,time) (slotDay,slotHour) = day == slotDay && TimeOfDay slotHour 0 0 <= time && time < TimeOfDay (slotHour+slotStep) 0 0 +-- | Check whether a given time of day lies within a given time slot +isInTimeSlot :: TimeOfDay -> TimeSlot -> Bool +isInTimeSlot time slot = TimeOfDay slot 0 0 <= time && time < TimeOfDay (slot+slotStep) 0 0 -- | Convert a TimeSlot to UTCTime for a given TimeZone timeSlotToUTCTime :: TimeZone -> Day -> TimeSlot -> UTCTime @@ -32,7 +33,6 @@ timeSlotToUTCTime tz day slot = UTCTime{..} where utctDayTime = timeOfDayToTime slotTimeOfDay (slotDayOffset, slotTimeOfDay) = localToUTCTimeOfDay tz $ TimeOfDay slot 0 0 - -- TODO: refactor in progress -- | Format a given TimeSlot t as time range from t until the next TimeSlot formatTimeSlotW :: TimeSlot -> Widget