我正在嘗試制作一個可以在日期上增加或減少作業日的功能。我有一個包含以下內容的表單:
- 輸入:DatePicker(日期時間)
- 輸入:NumberOfDays (int)
- 按鈕:CalendarDays/BusinessDays
- 輸出:計算的 FinalDate
障礙:我只能使用 datetime 和 timedelta - 沒有 numpy、pandas 等。下面的代碼有效,但是,它只適用于添加作業日。
目標:如果可能,我想使用一個函式來計算作業日,并使用正整數或負整數來確定作業日計算是加法還是減法。下面的代碼有效,但是,它只適用于正整數輸入,并且只增加作業日。
任何幫助是極大的贊賞。謝謝你。
from datetime import datetime, timedelta
def bizday_calc_func(self, start_date, num_days):
my_start_date = start_date
my_num_days = num_days
while my_num_days > 0:
my_start_date = timedelta(days=1)
weekday = my_start_date.weekday()
if weekday >= 5:
continue
my_num_days -= 1
return my_start_date
uj5u.com熱心網友回復:
似乎對您的例程進行一個小調整就可以解決問題:
from datetime import datetime, timedelta
def bizday_calc_func(self, start_date, num_days):
my_start_date = start_date
my_num_days = abs(num_days)
inc = 1 if num_days > 0 else -1
while my_num_days > 0:
my_start_date = timedelta(days=inc)
weekday = my_start_date.weekday()
if weekday >= 5:
continue
my_num_days -= 1
return my_start_date
免責宣告:未經測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/451637.html
