Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15496836
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: Python/Ruby

2009-05-31 21:17:37

《怀孕40周28天星期周数日期计算小程序--显示日,星期,天数,年份,月份--献给孩儿他妈》

浅析使用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].

阅读(6622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~