2017-02-17 11 views
0

datetime.timedeltaの意味を理解しようとしています。datetime timedelta内での計算?

timedelta(days = 6 - d.weekday()) 

これはどのように機能しますか?

+0

あなたの例では、 'D 'とは何である定義されたweekday方法を持っていますか? – BrenBarn

+0

@BrenBarn - 'weekday'メソッドのあるもの。 – mgilson

答えて

2

datetime.date.weekday は数字です。 0は、日付が月曜日であることを意味し、6は日曜日を意味します。 dは土曜日を表す場合は、:一般

6 - d.weekday() # 6 - 5 == 1 

6 - d.weekday()は基本的に

「私に dで表される日付の後日曜日までの日数である整数を与える」

を言っています

timedelta(たとえば、は次の日曜日のを計算できます)の日数を知りたい場合は、 N君はtimedelta(days=6 - d.weekday())


を使用datetime.dateからdatetime.datetime継承ということを忘れないでください、そう...それは全く同じよう

+1

@skyrocker: '6'のようなハードコード整数を'(MONDAY、TUESDAY、WEDNESDAY、THURSDAY)を使って使うのを避けることができます、FRIDAY、SATURDAY、SUNDAY)= range(7) 'これは後でより読みやすいコードを書くことを可能にします:' SUNDAY - d.weekday() '。 – martineau

+0

mgilsonとmartineauありがとう!優れた説明! – skyrocker

関連する問題