datetime 是一个用于日期时间处理的模块。
可以调用 datetime 的 date 方法来获取一个日期对象。
import datetime
print datetime.date(2017,1,12)
输出:
2017-01-12
如果想要知道某个日期是否是工作日,可以调用 datetime 的 weekday 方法。 它会返回一个数值,代表那一天是星期几。 周一对应数字 1, 周日对应数字 7,如果数字小于 5, 说明就是工作日了。
所以如果想要知道某个日期后一段时间内哪些天是工作日,可以写一个函数来判断:
import datetime
def business_days(start_date, num):
result = []
while len(result) < num:
for i in xrange(num):
result.append(start_date)
start_date += datetime.timedelta(1)
return result```
其中的 timedelta 方法可以返回一段时间间隔,
`class datetime.timedelta
([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])`
比如可以这样用
`datetime.timedelta(weeks=40, days=84, hours=23, minutes=50, seconds=600)`
测试一下看看 2017 年 1 月 26 日后的十天哪些天是工作日呢,
start_date = datetime.date(2017, 1, 26)
result = business_days(start_date, 10)
print result
结果返回了一个列表,
[datetime.date(2017, 1, 26), datetime.date(2017, 1, 27), datetime.date(2017, 1, 30), datetime.date(2017, 1, 31), datetime.date(2017, 2, 1), datetime.date(2017, 2, 2), datetime.date(2017, 2, 3), datetime.date(2017, 2, 6), datetime.date(2017, 2, 7), datetime.date(2017, 2, 8)]
当然我们的实际工作日没有这么多,因为这段时间刚好是 2017 年的中国春节。
网友评论