Python Cookbook学习记录 ch3_3/4_2013/10/29

3.3 计算日期之间的时段

给定两个日期,需要计算两个日期之间隔了几周

感觉没有必要使用文中提到的dateutil模块,自己写了一段:

>>> def totaltimer(times):
    td = datetime.timedelta(0)
    duration = sum([datetime.timedelta(minutes=x,seconds=y) for x,y in times],td)
    allseconds = duration.seconds
    print "The duration is "+str(int(allseconds/60))+"minutes "+str(int(allseconds%60))+"seconds"

    
>>> times1=[(3,23),(5,12),(4,12),(3,45)]
>>> totaltimer(times1)
The duration is 16minutes 32seconds

3.4 计算歌曲的总播放时间

其实就是通过一个列表,包换N个元祖(分,秒),计算所有元祖对应时间的和,可以通过列表表达式将分和秒取出再付给deltatime方法来得到时间,再通过内建的sum函数将所有时间进行求和。如果对一个对象列表,如timedelta列表,使用内建的sum函数,需要传入第二个参数作为初始化的值,负责默认为整数0,会报错

>>> def totaltimer(times):
    td = datetime.timedelta(0)
    duration = sum([datetime.timedelta(minutes=x,seconds=y) for x,y in times],td)
    allseconds = duration.seconds
    print "The duration is "+str(int(allseconds/60))+"minutes "+str(int(allseconds%60))+"seconds"

    
>>> times1=[(3,23),(5,12),(4,12),(3,45)]
>>> totaltimer(times1)
The duration is 16minutes 32seconds

 

posted on 2013-10-29 22:20  七海之风  阅读(159)  评论(0)    收藏  举报

导航