diff --git a/src/Utils/Schedule/Week.hs b/src/Utils/Schedule/Week.hs index 852b55fa1..0b2ea543d 100644 --- a/src/Utils/Schedule/Week.hs +++ b/src/Utils/Schedule/Week.hs @@ -87,8 +87,7 @@ weekSchedule uid dayOffset = do in \case ScheduleCourseEvent{sceOccurrence} -> occurrenceIsInSlot sceOccurrence ScheduleTutorial{stOccurrence} -> occurrenceIsInSlot stOccurrence - ScheduleExamOccurrence{seoStart} -> let slotTime = timeSlotToUTCTime tz day slot - nextSlotTime = timeSlotToUTCTime tz day $ nextTimeSlot slot + ScheduleExamOccurrence{seoStart} -> let (slotTime,nextSlotTime) = timeSlotToUTCTime tz day slot in slotTime <= seoStart && seoStart < nextSlotTime diff --git a/src/Utils/Schedule/Week/TimeSlot.hs b/src/Utils/Schedule/Week/TimeSlot.hs index 8ed419948..c0307743d 100644 --- a/src/Utils/Schedule/Week/TimeSlot.hs +++ b/src/Utils/Schedule/Week/TimeSlot.hs @@ -37,11 +37,13 @@ nextTimeSlot :: TimeSlot -> TimeSlot nextTimeSlot TimeSlot{tsTo=tsFrom} = let tsTo = TimeOfDay (todHour tsFrom + slotStep) 0 0 in TimeSlot{..} -- | Convert a TimeSlot to UTCTime for a given TimeZone -timeSlotToUTCTime :: TimeZone -> Day -> TimeSlot -> UTCTime -timeSlotToUTCTime tz day TimeSlot{..} = UTCTime{..} where - utctDay = slotDayOffset `addDays` day - utctDayTime = timeOfDayToTime slotTimeOfDay - (slotDayOffset, slotTimeOfDay) = localToUTCTimeOfDay tz tsFrom +timeSlotToUTCTime :: TimeZone -> Day -> TimeSlot -> (UTCTime, UTCTime) +timeSlotToUTCTime tz day TimeSlot{..} = (timeOfDayToUTC tsFrom, timeOfDayToUTC tsTo) where + timeOfDayToUTC time = + let (slotDayOffset, slotTimeOfDay) = localToUTCTimeOfDay tz time + utctDay = slotDayOffset `addDays` day + utctDayTime = timeOfDayToTime slotTimeOfDay + in UTCTime{..} -- | Format a given TimeSlot as time range formatTimeSlotW :: TimeSlot -> Widget