带年份计算
from datetime import datetime
def months_difference(year1, month1, year2, month2):
# 创建两个日期对象
date1 = datetime(year1, month1, 1)
date2 = datetime(year2, month2, 1)
# 计算相差的月份
diff = (date2.year - date1.year) * 12 + (date2.month - date1.month)
return diff
# 示例使用
year1, month1 = 2023, 1 # 2023年1月
year2, month2 = 2024, 5 # 2024年5月
difference = months_difference(year1, month1, year2, month2)
print(f"相差的月份数: {difference}")
直接计算a至b相差的实际月份
考虑到月份的环绕(例如,从 12 月到 1 月)
def months_difference(month1, month2):
# 计算相差的月份
if month2 >= month1:
diff = month2 - month1
else:
diff = (12 - month1) + month2
return diff
# 示例使用
# 计算 8 月到 12 月
difference1 = months_difference(8, 12)
print(f"8月到12月相差的月份数: {difference1}")
# 计算 12 月到 1 月
difference2 = months_difference(12, 1)
print(f"12月到1月相差的月份数: {difference2}")
# 计算 1 月到 8 月
difference3 = months_difference(1, 8)
print(f"1月到8月相差的月份数: {difference3}")