如果你不關心的一個月內的日子,你可以這樣做:
在同一個月內,例如
date1.year * 12 + date1.month - (date2.year * 12 + date2.month)
日期「2016年12月31日」和「2016年12月1日」,會給你0
如果你想佔個月內的一天,你可以計算出經過一個月的分數,直到給定天。例如。如果一個月有30天,那麼第一天的分數是0/30,而最後一天的分數是29/30。 該代碼段將做到這一點:
from calendar import monthrange
def get_frac_of_month(date):
# monthrange returns a tuple where the second entry is the number of days in the month
return 1. * (date.day - 1)/monthrange(date.year, date.month)[1]
def get_month_diff(date1, date2):
return date1.year * 12 + date1.month + get_frac_of_month(date1) - (date2.year * 12 + date2.month + get_frac_of_month(date2))
print get_month_diff(date1, date2)
的輸出中會
6.16129032258
月是不是一個標準的單位。如果你假設每月30天,你可以這樣做'(date1 - date2).days/30' – ayhan
你所有的日期是在同一年嗎? – doctorlove
我的日期是不同的年份,我在想如果有一個相當於'datediff(月,日期1,日期2)的SQL' – unclegood