2017-02-17 78 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