2

営業日を使用する条件付き休憩を実装する必要があります。のクラスがありDateField、その日付が 5 営業日以内の場合、何か (アクションa) が発生し、それ以外のb場合は発生します。2 つのオブジェクト間の営業日数を確認するにはどうすればよいですか?

明らかに、今日から 5 営業日を計算する必要があります。単純なタイム デルタを使用して 5 日先を見つけるのは簡単ですが、営業日を考慮すると、さらに複雑になります。今のところ、休日を無視しても問題ないと思います (これは最善のケースではありませんが、営業日を月曜から金曜にするだけで期限を迎えることができると思います)。次のようなことができる方法について、誰かが私にガイダンスを与えることができますtarget = today + 5 business_daysか?

ありがとう

4

2 に答える 2

3

あなたのケースは恥ずかしいほど単純ですが、これは一般的な解決策です;P

from datetime import timedelta, date

def add_business_days(from_date, number_of_days):
    to_date = from_date
    while number_of_days:
       to_date += timedelta(1)
       if to_date.weekday() < 5: # i.e. is not saturday or sunday
           number_of_days -= 1
    return to_date

そして結果。

>>> date.today()
datetime.date(2013, 7, 25)
>>> add_business_days(date.today(), 6)
datetime.date(2013, 8, 2)

if ステートメントで日付が休日に該当するかどうかをチェックすると、ボーナス マークが付きます。

于 2013-07-25T08:26:56.317 に答える