将两个时间点之间所有的天数输出到一个列表
import datetime
def get_date_range(begin,end):
need_date = []
append_timedate = datetime.timedelta(days=1)#用于增殖变量
while begin <= end:
need_date.append(begin)
begin_obj = datetime.datetime.strptime(begin,'%Y-%m-%d')#将输入封包成时间元组
begin = (begin_obj+append_timedate).strftime('%Y-%m-%d')#加上一天后解封
return need_date
begin_date = "2021-4-28"
end_date = "2021-5-3"
date_list = get_date_range(begin_date,end_date)
print(date_list)
输出结果为2021直接满到12-31
做了断点,bug测试时发现while当时间大于该值时仍然判定为True
故写以下代码测试
begin_date = "2021-5-1"
end_date = "2021-5-3"
if_outof_data = "2021-5-5"
if begin_date <= end_date:
print("证实可被对比")
if if_outof_data <= end_date:
print("若输出此结果则证明data大小判断无效")
结果为
"C:\Program Files\Python310\python.exe" G:/python基础题20道开始/025.py
证实可被对比
Process finished with exit code 0
离谱
加两个0就好了:end_date = "2021-05-03"
begin = (begin_obj+append_timedate).strftime('%Y-%m-%d')得到的格式是yyyy-mm-dd,月数是两位数的,01,02,03这样的
1.要么你把end也转换为datetime类型再进行比较
2.要么你的str格式必须一致
str在比较时,从头到尾依次比较每个字符
你的begin是2021-05-03格式,而你的end是2021-5-3格式
不管是01-09还是10,11,12,都比5要小