在我的 django 应用程序中,我有一些约会。 我需要使用完整(四舍五入)月份来计算距此日期还剩多少个月。 例如:今天是 19/02/2015(二月),我的“搜索”日期是 04/08/2015。差值应为 6。 如何获得正确的值?
最佳答案
from datetime import datetime,timedelta
from calendar import monthrange
today = datetime.today()
dt = "04/08/2015"
fut = datetime.strptime(dt, "%d/%m/%Y")
diff = 0
while today <= fut:
today += timedelta(days=monthrange(today.day,today.month)[1])
diff += 1
print(diff)
6
无需导入日历,我们可以在每次看到新月份时增加计数:
from datetime import datetime,timedelta
today = datetime.today()
dt = "09/08/2015"
fut = datetime.strptime(dt, "%d/%m/%Y")
diff = 0
while today <= fut:
mon = today.month
today += timedelta(days=1)
if today.month != mon:
diff += 1
print(diff)
6
如果您想让 future 的一天成为该月的最后一天:
from datetime import datetime, timedelta
from calendar import monthrange
today = datetime.today()
dt = "02/08/2015"
fut = datetime.strptime(dt, "%d/%m/%Y")
fut = fut + timedelta(days=monthrange(fut.day,fut.month)[1]-fut.day)
diff = 0
while today < fut:
mon = today.month
today += timedelta(days=1)
if today.month != mon:
diff += 1
print(diff)
这是故意不准确的,以便根据需要进行舍入,我们所关心的是我们遇到的不同月份的数量。
关于python - 如何计算距特定日期还剩几个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615335/