Python では、2 つのdatetime.date
オブジェクトを減算すると、属性を持つdatetime.timedelta
objectが生成されます。days
日数の差を年と月に変えることは明確に定義されていません。1 年を 365 日、1 か月を 30 日と定義する場合、次のように使用できます。
years, remainder = divmod(diff1.days, 365)
months = remainder // 30
または、平均的な年と月の長さを (わずかに) より正確に定義することもできます。
avgyear = 365.2425 # pedants definition of a year length with leap years
avgmonth = 365.2425/12.0 # even leap years have 12 months
years, remainder = divmod(diff1.days, avgyear)
years, months = int(years), int(remainder // avgmonth)
後者の計算では、2 番目の違いは 11 年と3か月になります。