2017-02-17 98 views
0

我想了解datetime.timedelta的含義。日期時間timedelta內計算?

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

這是如何工作的?

+0

什麼是'D'在你的榜樣? – BrenBarn

+0

@BrenBarn - 用「週日」方法。猜測它是'datetime.date'(或'datetime.datetime')實例... – 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.datedatetime.datetime繼承,所以......它有一個weekday方法定義完全相同的方式

+1

@skyrocker:可以通過使用'(MONDAY,TUESDAY,WEDNESDAY,THURSDAY)來避免使用像'6'這樣的硬編碼整數,FRIDAY,SATURDAY,SUNDAY)= range(7)',這將允許之後編寫更多可讀代碼:即'SUNDAY - d.weekday()'。 – martineau

+0

謝謝mgilson和martineau!優秀的解釋! – skyrocker