【转】浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等

>>> import datetime
>>> help(datetime)
http://docs.python.org/library/datetime.html

查看2009年5月31日和2009年2月1日间隔多少天
>>> d1=datetime.date(2009,05,31)
>>> d2=datetime.date(2009,02,01)
>>> d1-d2
datetime.timedelta(119) // 可以看出2009年5月31日和2009年2月1日间隔为119天[luther.gliethttp].

查看2009年5月31日是今年的第几天和第几周
>>> d1=datetime.date(2009,05,31)
>>> d1.isocalendar()
(2009, 22, 7) // 2009年, 第22周, 礼拜7 [luther.gliethttp]
>>> d1.timetuple()
(2009, 5, 31, 0, 0, 0, 6, 151, -1) // (d.year, d.month, d.day, d.hour, d.minute, d.second, d.weekday(), 今年的第几天, dst)

查看2009年5月31日后第20周对应的日期
>>> d1=datetime.date(2009,05,31)
>>> d=datetime.timedelta(weeks=20) // 20周将被自动转化为天数[luther.gliethttp]
>>> d1+d
datetime.date(2009, 10, 18) // 所以2009年5月31日后第20周对应的日期为2009年10月18日[luther.gliethttp]

查看2009年5月31日后第100天对应的日期和90天之前的日期
>>> d1=datetime.date(2009,05,31)
>>> d=datetime.timedelta(days=100) // 100天
>>> d1+d
datetime.date(2009, 9, 8) // 所以2009年5月31日后第100天对应的日期为2009年9月8日[luther.gliethttp]
>>> d=datetime.timedelta(days=90)
>>> d1-d
datetime.date(2009, 3, 2) // 所以2009年5月31日向前数90天对应的日期为2009年3月2日[luther.gliethttp]

看看datetime.timedelta的使用小例子
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
比如:
>>> datetime.timedelta(weeks=40, days=84, hours=23, minutes=50, seconds=600)
datetime.timedelta(365) // 使用timedelta()经过各种组合之后转化的总天数为365天[luther.gliethttp]
// 40*7 + 84 = 364
// 23时50分600秒=24时,所以为1天
// 故最终为364+1=365天[luther.gliethtp].
转自:http://hi.baidu.com/xiaolin0199

发表评论

电子邮件地址不会被公开。 必填项已用*标注

机器人检查 *