[英]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.