Skip to content

Conversation

haoyang1994
Copy link
Contributor

@haoyang1994 haoyang1994 commented Jun 9, 2025

The current IsInRange() method produces incorrect results when the time range crosses midnight (StartTime > EndTime) and "Weekdays" is configured. For example, when Weekdays=[Sunday, Monday, Tuesday, Wednesday, Thursday], the system will incorrectly identify Friday's time period as not belonging to the time period.

Reproduce

Config:

Weekdays: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"},	StartTime: "19:00:00",	EndTime: "06:00:00",	Timezone: "America/New_York", 

IsInRange() result before change:

[Sunday]2025-06-08 00:00:00 = true [Sunday]2025-06-08 01:00:00 = true [Sunday]2025-06-08 02:00:00 = true [Sunday]2025-06-08 03:00:00 = true [Sunday]2025-06-08 04:00:00 = true [Sunday]2025-06-08 05:00:00 = true [Sunday]2025-06-08 06:00:00 = true [Sunday]2025-06-08 07:00:00 = false [Sunday]2025-06-08 08:00:00 = false [Sunday]2025-06-08 09:00:00 = false [Sunday]2025-06-08 10:00:00 = false [Sunday]2025-06-08 11:00:00 = false [Sunday]2025-06-08 12:00:00 = false [Sunday]2025-06-08 13:00:00 = false [Sunday]2025-06-08 14:00:00 = false [Sunday]2025-06-08 15:00:00 = false [Sunday]2025-06-08 16:00:00 = false [Sunday]2025-06-08 17:00:00 = false [Sunday]2025-06-08 18:00:00 = false [Sunday]2025-06-08 19:00:00 = true [Sunday]2025-06-08 20:00:00 = true [Sunday]2025-06-08 21:00:00 = true [Sunday]2025-06-08 22:00:00 = true [Sunday]2025-06-08 23:00:00 = true [Monday]2025-06-09 00:00:00 = true [Monday]2025-06-09 01:00:00 = true [Monday]2025-06-09 02:00:00 = true [Monday]2025-06-09 03:00:00 = true [Monday]2025-06-09 04:00:00 = true [Monday]2025-06-09 05:00:00 = true [Monday]2025-06-09 06:00:00 = true [Monday]2025-06-09 07:00:00 = false [Monday]2025-06-09 08:00:00 = false [Monday]2025-06-09 09:00:00 = false [Monday]2025-06-09 10:00:00 = false [Monday]2025-06-09 11:00:00 = false [Monday]2025-06-09 12:00:00 = false [Monday]2025-06-09 13:00:00 = false [Monday]2025-06-09 14:00:00 = false [Monday]2025-06-09 15:00:00 = false [Monday]2025-06-09 16:00:00 = false [Monday]2025-06-09 17:00:00 = false [Monday]2025-06-09 18:00:00 = false [Monday]2025-06-09 19:00:00 = true [Monday]2025-06-09 20:00:00 = true [Monday]2025-06-09 21:00:00 = true [Monday]2025-06-09 22:00:00 = true [Monday]2025-06-09 23:00:00 = true [Tuesday]2025-06-10 00:00:00 = true [Tuesday]2025-06-10 01:00:00 = true [Tuesday]2025-06-10 02:00:00 = true [Tuesday]2025-06-10 03:00:00 = true [Tuesday]2025-06-10 04:00:00 = true [Tuesday]2025-06-10 05:00:00 = true [Tuesday]2025-06-10 06:00:00 = true [Tuesday]2025-06-10 07:00:00 = false [Tuesday]2025-06-10 08:00:00 = false [Tuesday]2025-06-10 09:00:00 = false [Tuesday]2025-06-10 10:00:00 = false [Tuesday]2025-06-10 11:00:00 = false [Tuesday]2025-06-10 12:00:00 = false [Tuesday]2025-06-10 13:00:00 = false [Tuesday]2025-06-10 14:00:00 = false [Tuesday]2025-06-10 15:00:00 = false [Tuesday]2025-06-10 16:00:00 = false [Tuesday]2025-06-10 17:00:00 = false [Tuesday]2025-06-10 18:00:00 = false [Tuesday]2025-06-10 19:00:00 = true [Tuesday]2025-06-10 20:00:00 = true [Tuesday]2025-06-10 21:00:00 = true [Tuesday]2025-06-10 22:00:00 = true [Tuesday]2025-06-10 23:00:00 = true [Wednesday]2025-06-11 00:00:00 = true [Wednesday]2025-06-11 01:00:00 = true [Wednesday]2025-06-11 02:00:00 = true [Wednesday]2025-06-11 03:00:00 = true [Wednesday]2025-06-11 04:00:00 = true [Wednesday]2025-06-11 05:00:00 = true [Wednesday]2025-06-11 06:00:00 = true [Wednesday]2025-06-11 07:00:00 = false [Wednesday]2025-06-11 08:00:00 = false [Wednesday]2025-06-11 09:00:00 = false [Wednesday]2025-06-11 10:00:00 = false [Wednesday]2025-06-11 11:00:00 = false [Wednesday]2025-06-11 12:00:00 = false [Wednesday]2025-06-11 13:00:00 = false [Wednesday]2025-06-11 14:00:00 = false [Wednesday]2025-06-11 15:00:00 = false [Wednesday]2025-06-11 16:00:00 = false [Wednesday]2025-06-11 17:00:00 = false [Wednesday]2025-06-11 18:00:00 = false [Wednesday]2025-06-11 19:00:00 = true [Wednesday]2025-06-11 20:00:00 = true [Wednesday]2025-06-11 21:00:00 = true [Wednesday]2025-06-11 22:00:00 = true [Wednesday]2025-06-11 23:00:00 = true [Thursday]2025-06-12 00:00:00 = true [Thursday]2025-06-12 01:00:00 = true [Thursday]2025-06-12 02:00:00 = true [Thursday]2025-06-12 03:00:00 = true [Thursday]2025-06-12 04:00:00 = true [Thursday]2025-06-12 05:00:00 = true [Thursday]2025-06-12 06:00:00 = true [Thursday]2025-06-12 07:00:00 = false [Thursday]2025-06-12 08:00:00 = false [Thursday]2025-06-12 09:00:00 = false [Thursday]2025-06-12 10:00:00 = false [Thursday]2025-06-12 11:00:00 = false [Thursday]2025-06-12 12:00:00 = false [Thursday]2025-06-12 13:00:00 = false [Thursday]2025-06-12 14:00:00 = false [Thursday]2025-06-12 15:00:00 = false [Thursday]2025-06-12 16:00:00 = false [Thursday]2025-06-12 17:00:00 = false [Thursday]2025-06-12 18:00:00 = false [Thursday]2025-06-12 19:00:00 = true [Thursday]2025-06-12 20:00:00 = true [Thursday]2025-06-12 21:00:00 = true [Thursday]2025-06-12 22:00:00 = true [Thursday]2025-06-12 23:00:00 = true [Friday]2025-06-13 00:00:00 = false [Friday]2025-06-13 01:00:00 = false [Friday]2025-06-13 02:00:00 = false [Friday]2025-06-13 03:00:00 = false [Friday]2025-06-13 04:00:00 = false [Friday]2025-06-13 05:00:00 = false [Friday]2025-06-13 06:00:00 = false [Friday]2025-06-13 07:00:00 = false [Friday]2025-06-13 08:00:00 = false [Friday]2025-06-13 09:00:00 = false [Friday]2025-06-13 10:00:00 = false [Friday]2025-06-13 11:00:00 = false [Friday]2025-06-13 12:00:00 = false [Friday]2025-06-13 13:00:00 = false [Friday]2025-06-13 14:00:00 = false [Friday]2025-06-13 15:00:00 = false [Friday]2025-06-13 16:00:00 = false [Friday]2025-06-13 17:00:00 = false [Friday]2025-06-13 18:00:00 = false [Friday]2025-06-13 19:00:00 = false [Friday]2025-06-13 20:00:00 = false [Friday]2025-06-13 21:00:00 = false [Friday]2025-06-13 22:00:00 = false [Friday]2025-06-13 23:00:00 = false 

IsInRange() result after change:

[Sunday]2025-06-08 00:00:00 = false [Sunday]2025-06-08 01:00:00 = false [Sunday]2025-06-08 02:00:00 = false [Sunday]2025-06-08 03:00:00 = false [Sunday]2025-06-08 04:00:00 = false [Sunday]2025-06-08 05:00:00 = false [Sunday]2025-06-08 06:00:00 = false [Sunday]2025-06-08 07:00:00 = false [Sunday]2025-06-08 08:00:00 = false [Sunday]2025-06-08 09:00:00 = false [Sunday]2025-06-08 10:00:00 = false [Sunday]2025-06-08 11:00:00 = false [Sunday]2025-06-08 12:00:00 = false [Sunday]2025-06-08 13:00:00 = false [Sunday]2025-06-08 14:00:00 = false [Sunday]2025-06-08 15:00:00 = false [Sunday]2025-06-08 16:00:00 = false [Sunday]2025-06-08 17:00:00 = false [Sunday]2025-06-08 18:00:00 = false [Sunday]2025-06-08 19:00:00 = true [Sunday]2025-06-08 20:00:00 = true [Sunday]2025-06-08 21:00:00 = true [Sunday]2025-06-08 22:00:00 = true [Sunday]2025-06-08 23:00:00 = true [Monday]2025-06-09 00:00:00 = true [Monday]2025-06-09 01:00:00 = true [Monday]2025-06-09 02:00:00 = true [Monday]2025-06-09 03:00:00 = true [Monday]2025-06-09 04:00:00 = true [Monday]2025-06-09 05:00:00 = true [Monday]2025-06-09 06:00:00 = true [Monday]2025-06-09 07:00:00 = false [Monday]2025-06-09 08:00:00 = false [Monday]2025-06-09 09:00:00 = false [Monday]2025-06-09 10:00:00 = false [Monday]2025-06-09 11:00:00 = false [Monday]2025-06-09 12:00:00 = false [Monday]2025-06-09 13:00:00 = false [Monday]2025-06-09 14:00:00 = false [Monday]2025-06-09 15:00:00 = false [Monday]2025-06-09 16:00:00 = false [Monday]2025-06-09 17:00:00 = false [Monday]2025-06-09 18:00:00 = false [Monday]2025-06-09 19:00:00 = true [Monday]2025-06-09 20:00:00 = true [Monday]2025-06-09 21:00:00 = true [Monday]2025-06-09 22:00:00 = true [Monday]2025-06-09 23:00:00 = true [Tuesday]2025-06-10 00:00:00 = true [Tuesday]2025-06-10 01:00:00 = true [Tuesday]2025-06-10 02:00:00 = true [Tuesday]2025-06-10 03:00:00 = true [Tuesday]2025-06-10 04:00:00 = true [Tuesday]2025-06-10 05:00:00 = true [Tuesday]2025-06-10 06:00:00 = true [Tuesday]2025-06-10 07:00:00 = false [Tuesday]2025-06-10 08:00:00 = false [Tuesday]2025-06-10 09:00:00 = false [Tuesday]2025-06-10 10:00:00 = false [Tuesday]2025-06-10 11:00:00 = false [Tuesday]2025-06-10 12:00:00 = false [Tuesday]2025-06-10 13:00:00 = false [Tuesday]2025-06-10 14:00:00 = false [Tuesday]2025-06-10 15:00:00 = false [Tuesday]2025-06-10 16:00:00 = false [Tuesday]2025-06-10 17:00:00 = false [Tuesday]2025-06-10 18:00:00 = false [Tuesday]2025-06-10 19:00:00 = true [Tuesday]2025-06-10 20:00:00 = true [Tuesday]2025-06-10 21:00:00 = true [Tuesday]2025-06-10 22:00:00 = true [Tuesday]2025-06-10 23:00:00 = true [Wednesday]2025-06-11 00:00:00 = true [Wednesday]2025-06-11 01:00:00 = true [Wednesday]2025-06-11 02:00:00 = true [Wednesday]2025-06-11 03:00:00 = true [Wednesday]2025-06-11 04:00:00 = true [Wednesday]2025-06-11 05:00:00 = true [Wednesday]2025-06-11 06:00:00 = true [Wednesday]2025-06-11 07:00:00 = false [Wednesday]2025-06-11 08:00:00 = false [Wednesday]2025-06-11 09:00:00 = false [Wednesday]2025-06-11 10:00:00 = false [Wednesday]2025-06-11 11:00:00 = false [Wednesday]2025-06-11 12:00:00 = false [Wednesday]2025-06-11 13:00:00 = false [Wednesday]2025-06-11 14:00:00 = false [Wednesday]2025-06-11 15:00:00 = false [Wednesday]2025-06-11 16:00:00 = false [Wednesday]2025-06-11 17:00:00 = false [Wednesday]2025-06-11 18:00:00 = false [Wednesday]2025-06-11 19:00:00 = true [Wednesday]2025-06-11 20:00:00 = true [Wednesday]2025-06-11 21:00:00 = true [Wednesday]2025-06-11 22:00:00 = true [Wednesday]2025-06-11 23:00:00 = true [Thursday]2025-06-12 00:00:00 = true [Thursday]2025-06-12 01:00:00 = true [Thursday]2025-06-12 02:00:00 = true [Thursday]2025-06-12 03:00:00 = true [Thursday]2025-06-12 04:00:00 = true [Thursday]2025-06-12 05:00:00 = true [Thursday]2025-06-12 06:00:00 = true [Thursday]2025-06-12 07:00:00 = false [Thursday]2025-06-12 08:00:00 = false [Thursday]2025-06-12 09:00:00 = false [Thursday]2025-06-12 10:00:00 = false [Thursday]2025-06-12 11:00:00 = false [Thursday]2025-06-12 12:00:00 = false [Thursday]2025-06-12 13:00:00 = false [Thursday]2025-06-12 14:00:00 = false [Thursday]2025-06-12 15:00:00 = false [Thursday]2025-06-12 16:00:00 = false [Thursday]2025-06-12 17:00:00 = false [Thursday]2025-06-12 18:00:00 = false [Thursday]2025-06-12 19:00:00 = true [Thursday]2025-06-12 20:00:00 = true [Thursday]2025-06-12 21:00:00 = true [Thursday]2025-06-12 22:00:00 = true [Thursday]2025-06-12 23:00:00 = true [Friday]2025-06-13 00:00:00 = true [Friday]2025-06-13 01:00:00 = true [Friday]2025-06-13 02:00:00 = true [Friday]2025-06-13 03:00:00 = true [Friday]2025-06-13 04:00:00 = true [Friday]2025-06-13 05:00:00 = true [Friday]2025-06-13 06:00:00 = true [Friday]2025-06-13 07:00:00 = false [Friday]2025-06-13 08:00:00 = false [Friday]2025-06-13 09:00:00 = false [Friday]2025-06-13 10:00:00 = false [Friday]2025-06-13 11:00:00 = false [Friday]2025-06-13 12:00:00 = false [Friday]2025-06-13 13:00:00 = false [Friday]2025-06-13 14:00:00 = false [Friday]2025-06-13 15:00:00 = false [Friday]2025-06-13 16:00:00 = false [Friday]2025-06-13 17:00:00 = false [Friday]2025-06-13 18:00:00 = false [Friday]2025-06-13 19:00:00 = false [Friday]2025-06-13 20:00:00 = false [Friday]2025-06-13 21:00:00 = false [Friday]2025-06-13 22:00:00 = false [Friday]2025-06-13 23:00:00 = false 
@geritol
Copy link

geritol commented Jul 17, 2025

Also encountered this: Sunday (13th) 2AM is not expected to be in range for the below config (expected to be down from Friday 3 AM till Sunday 6PM)

edit: or expected to be down from Saturday 3 AM till Sunday 6PM?

Subject: [PATCH] add failing test --- Index: internal/time_range_test.go IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/internal/time_range_test.go b/internal/time_range_test.go --- a/internal/time_range_test.go	(revision 90fde31c50e9f39850fa8b7843fe6f749469602e) +++ b/internal/time_range_test.go	(date 1752765476696) @@ -111,6 +111,15 @@	expectedInRange bool	}{	{ +	label: "2AM, inverted start/end, weekdays in range", +	start: NewTimeOfDay(18, 0, 0), +	end: NewTimeOfDay(3, 0, 0), +	weekdays: []time.Weekday{time.Monday, time.Tuesday, time.Wednesday, time.Thursday, time.Friday, time.Sunday}, +	location: time.UTC, +	now: time.Date(2025, time.July, 13, 2, 0, 0, 0, time.UTC), +	expectedInRange: false, +	}, +	{	label: "10AM",	start: NewTimeOfDay(3, 0, 0),	end: NewTimeOfDay(18, 0, 0), 
@ackleymi ackleymi merged commit fae457e into quickfixgo:main Jul 21, 2025
47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants