Skip to content

Commit 3e1bf43

Browse files
committed
fix: correct time range detection for overnight monitoring schedules
1 parent 2d9c887 commit 3e1bf43

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

app/utils/utils.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,19 +174,22 @@ def is_time_greater_than_now(time_str: str) -> bool:
174174

175175
def is_current_time_within_range(time_range_str: str):
176176
"""
177-
Determine whether the current time is within the time range
177+
判断当前时间是否在时间范围内,支持跨越午夜的时间范围
178178
179-
:param time_range_str: such as "18:30:00~20:30:00"
180-
:return: Return whether it is within the time range
179+
:param time_range_str: "18:30:00~20:30:00" 或跨越午夜的 "20:00:00~02:00:00"
180+
:return: 是否在时间范围内
181181
"""
182182
start_str, end_str = time_range_str.split("~")
183183
time_format = "%H:%M:%S"
184184

185185
start_time = datetime.strptime(start_str.strip(), time_format).time()
186186
end_time = datetime.strptime(end_str.strip(), time_format).time()
187-
188187
now = datetime.now().time()
189-
return start_time <= now <= end_time
188+
189+
if end_time < start_time:
190+
return now >= start_time or now <= end_time
191+
else:
192+
return start_time <= now <= end_time
190193

191194

192195
def is_time_interval_exceeded(last_check_time, interval_seconds=60):

0 commit comments

Comments
 (0)