您的位置:首页 > 编程语言 > Python开发

python天天进步(4)--计算时间差

2009-03-03 20:01 579 查看
Recipe 3.3. Calculating Time Periods in a Date Range

1、问题:

给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年?

2、解决方法:

标准模块datetime和第三方包dateutil(特别是dateutil的rrule.count方法)能非常简单迅速的帮你解决这个问题。

from dateutil import rrule

import datetime

def weeks_between(start_date, end_date):

weeks = rrule.rrule(rrule.WEEKLY, dtstart=start_date, until=end_date)

return weeks.count( )

rrule方法允许你根据日期(DAILY),星期(WEEKLY),年(YEARLY)来设置尺度计算。下面用一段代码来测试一下:

if _ _name_ _=='_ _main_ _':

starts = [datetime.date(2005, 01, 04), datetime.date(2005, 01, 03)]

end = datetime.date(2005, 01, 10)

for s in starts:

days = rrule.rrule(rrule.DAILY, dtstart=s, until=end).count( )

print "%d days shows as %d weeks "% (days, weeks_between(s, end))

将输出这样的结果:

7 days shows as 1 weeks

8 days shows as 2 weeks

Rrule计算是以整数计算的,它不会返回0.5星期之类的结果,所以8天会被算为两个星期。

当然你可以不必定义一个尺寸,直接一句return rrule.rrule(rrule.WEEKLY, dtstart=start_date, until=end_date).count( )就可以得到结果。

03.03.2009 by vivilisa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: