-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
57 lines (55 loc) · 1.6 KB
/
utils.py
File metadata and controls
57 lines (55 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
"""
===========================
@Time : 2024/9/15 下午6:38
@Author : Entropy.Xu
@File : utils.py
@Software: PyCharm
============================
"""
# utils.py
def format_weeks(weeks):
"""格式化周数列表为字符串,连续的周数用'-'表示"""
if not weeks:
return ''
weeks = sorted(weeks)
ranges = []
start = prev = weeks[0]
for week in weeks[1:]:
if week == prev + 1:
prev = week
else:
if start == prev:
ranges.append(f"{start}")
else:
ranges.append(f"{start}-{prev}")
start = prev = week
if start == prev:
ranges.append(f"{start}")
else:
ranges.append(f"{start}-{prev}")
return ','.join(ranges)
def parse_weeks_input(weeks_input):
"""解析周数输入字符串,返回周数列表"""
weeks = set()
for part in weeks_input.split(','):
part = part.strip()
if '-' in part:
try:
start, end = part.split('-')
weeks.update(range(int(start), int(end) + 1))
except ValueError:
continue
else:
try:
weeks.add(int(part))
except ValueError:
continue
return sorted(weeks)
def get_time_from_period(period_str):
"""根据节次信息获取开始时间和结束时间"""
try:
times = period_str.split('\n')[1]
start_time_str, end_time_str = times.split('-')
return start_time_str.strip(), end_time_str.strip()
except IndexError:
return "08:00", "09:00" # 默认时间