相关疑难解决方法(0)

找到两个日期之间的月份的最佳方法

我需要能够准确地找到python中两个日期之间的月份.我有一个解决方案,但它不是很好(如优雅)或快速.

dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")]
months = [] 

tmpTime = dateRange[0]
oneWeek = timedelta(weeks=1)
tmpTime = tmpTime.replace(day=1)
dateRange[0] = tmpTime
dateRange[1] = dateRange[1].replace(day=1)
lastMonth = tmpTime.month
months.append(tmpTime)
while tmpTime < dateRange[1]:
    if lastMonth != 12:
        while tmpTime.month <= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month

    else:
        while tmpTime.month >= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month
Run Code Online (Sandbox Code Playgroud)

所以只是为了解释一下,我在这里做的是将两个日期转换为iso格式转换为python datetime对象.然后我循环通过在开始日期时间对象中添加一周,并检查月份的数值是否更大(除非月份是12月,然后检查日期是否更少),如果值更大,我将其附加到列表几个月,并一直循环,直到我到达我的结束日期.

它完美地工作它似乎不是一个好方法...

python datetime monthcalendar date-math

81
推荐指数
12
解决办法
10万
查看次数

如何使用datetime在python中获取给定日期下个月的同一天

我知道使用datetime.timedelta我可以在给定日期之前获得某些日子的日期

daysafter = datetime.date.today() + datetime.timedelta(days=5)
Run Code Online (Sandbox Code Playgroud)

但似乎没有 datetime.timedelta(month=1)

python datetime date

46
推荐指数
6
解决办法
3万
查看次数

标签 统计

datetime ×2

python ×2

date ×1

date-math ×1

monthcalendar ×1