在python中,我需要的是给定两个日期;
即
date1 = '2021-11-03'
date2 = '2022-01-02'
我想把介于两者之间的每一天的列表作为日期时间对象,所以的列表
days_between = ['2022-01-01', '2021-12-31', '2021-12-30', etc, etc]
我还需要找到两者之间的月份,所以在这种情况下,我想要一个列表,比如。。
months_between = ['2022-01-01', '2021-11-01', '2021-12-01']
现在,我一直在用这样的东西来实现这一点;
# Get all lessons
lessons = get_lessons_between(start=start, end=end, obj=True)
# Store the dates
dates = []
for lesson in lessons:
date = convert_to_dt_obj(lesson.date)
if date not in dates:
dates.append(date)
series = {}
for date in dates:
for lesson in lessons:
if convert_to_dt_obj(lesson.date) == date:
if lesson.date not in series.keys():
series[lesson.date] = lesson.value
else:
series[lesson.date] += lesson.value
tmp_lst = []
for k, v in series.items():
tmp_lst.append([k, v])
我正在处理的是数据库中的日期,这些日期的字符串格式为"YYYY-MM-DD"。我正在尝试使用前端的APEX charts/vue来规范一些图表的数据。
我更喜欢的是将日期作为任意两个日期之间的列表,并根据列表中的每个日期在数据库中查找,这样我就可以说。。
for day in days_between:
.. do some database queries
任何想法或帮助都会得到赞赏。
部分答案(仅限天(:
python3.9
Python 3.9.5 (default, Nov 23 2021, 15:27:38)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetimerange import DateTimeRange
>>> date1 = '2021-11-03'
>>> date2 = '2022-01-02'
>>> DateTimeRange(date1,date2).get_timedelta_second()/(3600*24)
60.0