![](/img/trans.png)
[英]Determine the amount of days between events excluding weekends in python
[英]What date it was x amount of days ago excluding weekends in Python
作為一個例子,我想看看如果今天是什么日期 - 6 天。 但是,我只想計算工作日的天數。 因此,鑒於 8/22,output 應該是 8/12,因為這只是 6 個工作日。
嘗試使用工作日 function 返回周六和周日的 5 或 6 並跳過那些日子,但到目前為止我沒有運氣
當前代碼:
from datetime import datetime, timedelta
age = 6
counter = 0
difference = datetime.today() - timedelta(counter)
while counter <= age:
difference = datetime.today() - timedelta(counter)
counter = counter + 1
此代碼僅返回包含周末的那一天,因為我無法弄清楚如何排除周末。 我將代碼設置為循環以使用 weekday() function 檢查它是 5 還是 6,但是在嘗試這樣做時我一直得到不好的結果
您可以通過計算過去的周末數來計算實際天數差異,然后將日期減去天數差異和周末天數得到結果。
from datetime import datetime,timedelta
from math import ceil
def subtract_weekdays (from_date, diff):
no_of_weekends = ceil((diff - from_date.weekday())/5)
result_date = from_date - timedelta(days=diff + no_of_weekends * 2)
return result_date
print subtract_weekdays(datetime.today(), 6)
from datetime import date, timedelta
def weekdays_between(startdate,stopdate):
day = startdate
daycount = 0
while day < stopdate :
if day.weekday() < 5 :
daycount += 1
day = day + timedelta(days=1)
return daycount
if __name__ == "__main__" :
day=date.today()
dayn=day + timedelta(days=45)
print(weekdays_between(day,dayn))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.