给定两个日期时间对象,是否找到介于两者之间的月份/天



在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

相关内容

最新更新