以下是一个按组计算连续天数的示例解决方法:
def calculate_consecutive_days(date_list):
consecutive_groups = []
current_group = []
for i, date in enumerate(date_list):
if i == 0 or (date - date_list[i-1]).days == 1:
current_group.append(date)
else:
consecutive_groups.append(current_group)
current_group = [date]
consecutive_groups.append(current_group)
for group in consecutive_groups:
print(f"Group: {group}, Consecutive Days: {len(group)}")
# 测试数据
dates = [datetime.date(2022, 1, 1), datetime.date(2022, 1, 2), datetime.date(2022, 1, 3),
datetime.date(2022, 1, 5), datetime.date(2022, 1, 6), datetime.date(2022, 1, 9),
datetime.date(2022, 1, 10), datetime.date(2022, 1, 11)]
calculate_consecutive_days(dates)
该示例使用了Python中的datetime
模块来表示日期。calculate_consecutive_days
函数接受一个日期列表作为参数,并按照连续的天数将日期分组。然后,对每个分组计算连续的天数并打印输出。
示例输出:
Group: [datetime.date(2022, 1, 1), datetime.date(2022, 1, 2), datetime.date(2022, 1, 3)], Consecutive Days: 3
Group: [datetime.date(2022, 1, 5), datetime.date(2022, 1, 6)], Consecutive Days: 2
Group: [datetime.date(2022, 1, 9), datetime.date(2022, 1, 10), datetime.date(2022, 1, 11)], Consecutive Days: 3
下一篇:按组计算连续行之间的距离