欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 計算兩個日期相差多少個月實例代碼

 更新時間:2017年05月24日 08:24:26   作者:異彩飛天  
這篇文章主要介紹了python 計算兩個日期相差多少個月實例代碼,非常具有實用價值,需要的朋友可以參考下

近期,由于業(yè)務需要計算兩個日期之前相差多少個月。我在網(wǎng)上找了很久,結(jié)果發(fā)現(xiàn)萬能的python,居然沒有一個模塊計算兩個日期的月數(shù),像Java、C#之類的高級語言,都會有(date1-date2).months的現(xiàn)成方法,覺得不可思議。說句實在的,一直覺得python 的日期處理模塊真心不好用。

哦,對了,別跟我說 datetime, calendar, dateutil 這些模塊,因為我都試過了,都沒用。有個竟然算出來還有錯。datetime.timedelta只能計算出日時分秒。對年月卻不支持。網(wǎng)上一搜,一大堆的。

dateutil.rrule這個例子是我好不容易找到的,請看我的測試結(jié)果:

import datetime

from dateutil import rrule

d1 = datetime.date(2016, 2, 29)
d2 = datetime.date(2019, 3, 31)

months = rrule.rrule(rrule.MONTHLY, dtstart=d1, until=d2).count()

print(f"months={months}")

看到這樣的結(jié)果,我只能呵呵了。

廢話不多少,獻上自己寫的代碼:

該代碼返回,(月,小數(shù)月)

import datetime

import calendar as c



d1 = datetime.date(2016, 2, 29)

d2 = datetime.date(2019, 3, 31)



def calmonths(startdate, enddate):

# 計算兩個日期相隔月差

samemonthdate = None

try:

samemonthdate = datetime.date(enddate.year, enddate.month,

startdate.day)

except Exception as e:

print(e)

samemonthdate = datetime.date(enddate.year, enddate.month,

c.monthrange(enddate.year,

enddate.month)[1])


holdmonths = 0

decimalmonth = 0.0

if samemonthdate > enddate:

premanthdate = None

try:

premanthdate = datetime.date(enddate.year, enddate.month - 1,

startdate.day)

except Exception as e:

print(e)

premanthdate = datetime.date(enddate.year, enddate.month - 1,

c.monthrange(

enddate.year,

enddate.month - 1)[1])

currmonthdays = (samemonthdate - premanthdate).days

holdmonths = (premanthdate.year - startdate.year

) * 12 + premanthdate.month - startdate.month

decimalmonth = (enddate - premanthdate).days / currmonthdays


elif samemonthdate < enddate:

nextmonthdate = None

try:

nextmonthdate = datetime.date(enddate.year, enddate.month + 1,

startdate.day)

except Exception as e:

nextmonthdate = datetime.date(enddate.year, enddate.month + 1,

c.monthrange(

enddate.year,

enddate.month + 1)[1])

currmonthdays = (nextmonthdate - samemonthdate).days

holdmonths = (samemonthdate.year - startdate.year

) * 12 + samemonthdate.month - startdate.month

decimalmonth = (enddate - samemonthdate).days / currmonthdays


else:

holdmonths = (enddate.year - startdate.year

) * 12 + enddate.month - startdate.month


return holdmonths, decimalmonth


months = calmonths(d1, d2)


print(f"months={months}")

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python3編碼問題匯總

    python3編碼問題匯總

    本文給通過一個具體的編碼問題的解決辦法,給大家詳細分享了python中的編碼問題的來龍去脈,非常的細致全面,有需要的小伙伴可以參考下
    2016-09-09
  • 詳解django2中關于時間處理策略

    詳解django2中關于時間處理策略

    這篇文章主要介紹了詳解django2中關于時間處理策略,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • python PyAutoGUI 模擬鼠標鍵盤操作和截屏功能

    python PyAutoGUI 模擬鼠標鍵盤操作和截屏功能

    一款跨平臺/無依賴的自動化測試工具,目測只能控制鼠標/鍵盤/獲取屏幕尺寸/彈出消息框/截屏。這篇文章主要介紹了python PyAutoGUI 模擬鼠標鍵盤操作和截屏功能,需要的朋友可以參考下
    2019-08-08
  • python使用生成器實現(xiàn)可迭代對象

    python使用生成器實現(xiàn)可迭代對象

    這篇文章主要為大家詳細介紹了python如何使用生成器實現(xiàn)可迭代對象,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用Python開發(fā)一個Word文檔批量合并工具

    使用Python開發(fā)一個Word文檔批量合并工具

    我們經(jīng)常需要將多個Word文檔合并成一個完整的文檔,無論是整理項目報告、匯編會議紀要,還是制作培訓材料,手動復制粘貼不僅效率低下,還容易出錯,今天,我將分享如何使用Python開發(fā)一個功能完善的Word文檔批量合并工具,需要的朋友可以參考下
    2025-05-05
  • python 實現(xiàn)

    python 實現(xiàn)"神經(jīng)衰弱"翻牌游戲

    這篇文章主要介紹了python 實現(xiàn)"神經(jīng)衰弱"游戲,幫助大家更好的理解和使用python的pygame庫,感興趣的朋友可以了解下
    2020-11-11
  • Python中三種時間格式轉(zhuǎn)換的方法

    Python中三種時間格式轉(zhuǎn)換的方法

    本文主要介紹了Python中三種時間格式轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 使用Keras加載含有自定義層或函數(shù)的模型操作

    使用Keras加載含有自定義層或函數(shù)的模型操作

    這篇文章主要介紹了使用Keras加載含有自定義層或函數(shù)的模型操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python使用scipy.fft進行大學經(jīng)典的傅立葉變換

    Python使用scipy.fft進行大學經(jīng)典的傅立葉變換

    傅里葉變換是在高數(shù)是一個很重要的知識點,本文將介紹Python使用scipy.fft進行大學經(jīng)典的傅立葉變換,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python第三方包安裝路徑site-packages下.libs作用詳解

    python第三方包安裝路徑site-packages下.libs作用詳解

    這篇文章主要為大家介紹了python?第三方包安裝路徑?site-packages?下面的以?.libs?結(jié)尾的路徑作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論