簡體   English   中英

在 Python 中查找 2 個日期之間的差異

[英]Find the difference between 2 dates in Python

我正在嘗試使用 Python 來計算 2 個日期之間的差異。

目前我的代碼如下

elif request.method == 'POST':
    name = request.form['name']       #Pulls name from html form
    rawstartdate = request.form['date1']   #Pulls First date from html form
    rawenddate = request.form['date2']    #Pulls End date from html form
    datetimeobject = datetime.strptime(rawstartdate, '%Y-%m-%d')
    startdate1 = datetimeobject.strftime('%d-%m-%Y')   #Change First date to UK format
    datetimeobject2 = datetime.strptime(rawenddate, '%Y-%m-%d')
    enddate1 = datetimeobject2.strftime('%d-%m-%Y')   #Change End date to UK format
    a = datetime.strptime(startdate1, date_format)
    b = datetime.strptime(enddate1, date_format)
    delta = b - a
    duration=(delta.days) #Calculate difference in days between Variables
    print(duration) # for debugging
    record = database(user=name,startdate=startdate1,enddate=enddate1,duration=duration)

在代碼中,我從前端網站的 Datepicker 中獲取日期。 默認情況下,這是在 Year-Month-Date 中傳遞給 Python 的。 在插入到我的數據庫進行存儲之前,我將其轉換為標准的英國日期格式。

我遇到的問題是“.days”的數據時間函數返回不正確的值。

例如,如果日期是“20-10-2021”到“21-10-2021”。 程序返回“1” 我希望程序返回“2”,因為日期“20th”和“21st”之間有 2 天。

有什么我在這里想念的嗎?

看起來程序返回了正確的值。

如果您的預期結果總是與結果相加,我建議您將結果與結果相加。

20日和21日之間沒有兩天。 如果 20 日是星期三,而 21 日是星期四,則它們相隔一天。 聽起來你想要包容,但你可能會在午夜左右遇到一個角落案例。 查找“圍欄問題”,又名Off by One 還有21 - 20 = 1

此外,您正在做太多的日期調整。 一旦您擁有datetime對象,您就無需轉換為英國格式,您可以以任何您想要的格式顯示它。 請不要將日期作為字符串存儲在您的數據庫中。 如果您使用的是 ORM,數據庫將根據需要存儲它,您可以選擇如何顯示它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM