Python Cookbook学习记录 ch3_5/8_2013/10/30

3.5 计算日期之间的工作日

文中使用了dateutil模块,由于deteutil模块属于第三方模块,需要额外安装,所以尝试不适用此模块来实现此功能

方法就是使用weekday()方法,由于周六与周日的数值为5和6,不属于这两天的即是工作日:

>>> import datetime
>>> def workday_between(startday,endday):
    oneday = datetime.timedelta(days=1)
    daycheck = endday
    workday_num = 0
    while daycheck != startday:
        if daycheck.weekday() not in (5,6):
            workday_num += 1
        daycheck = daycheck - oneday
    return workday_num

>>> today = datetime.date.today()
>>> oneday = datetime.date(2013,10,4)
>>> print workday_between(oneday,today)
18

3.8 检查夏令时是否正在实行

time结构里面的tm_isdst即为是否执行夏令时

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2013, tm_mon=10, tm_mday=30, tm_hour=22, tm_min=16, tm_sec=35, tm_wday=2, tm_yday=303, tm_isdst=0)

可以如下方法实现:

>>> def is_dst():
    return  bool(time.localtime().tm_isdst)

>>> is_dst()
False

 

posted on 2013-10-30 22:25  七海之风  阅读(178)  评论(0)    收藏  举报

导航