[转摘]浅析使用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

### 回答1: 您好,我可以回答您的问题。要判断两个日期的先后,可以将日期转换为时间戳,然后比较大小。计算间隔天数可以将两个日期转换为时间戳后相减,再将结果转换为天数计算间隔周数可以将间隔天数除以7,取整即可。希望能够帮到您。 ### 回答2: 要判断两个日期的先后,我们可以比较这两个日期的大小。如果第一个日期在第二个日期之前,则我们可以说第一个日期较早;如果第一个日期在第二个日期之后,则我们可以说第一个日期较晚。如果两个日期相同,则可以说这两个日期相等。 计算两个日期间隔天数可以通过数学运算来实现。我们可以将两个日期都转换为自公元1年1月1日以来的天数,并计算两个天数的差值。这样就可以得到这两个日期之间的天数间隔计算两个日期间隔周数可以通过先计算两个日期间隔天数,然后再将天数除以7来得到。因为每周有7天,所以将天数除以7就可以得到相应的周数。 例如,如果第一个日期是2022年1月1日,第二个日期是2022年1月8日,那么这两个日期间隔天数是7天,间隔周数是1周。 总结起来,判断两个日期的先后可以比较它们的大小,计算两个日期间隔天数可以通过计算天数差值,计算两个日期间隔周数可以通过计算天数除以7得到。 ### 回答3: 判断两个日期的先后可以根据日期的大小进行比较。比较的时候可以按照年、月、日依次进行比较。如果第一个日期的年份大于第二个日期的年份,则第一个日期较晚;如果年份相同,再比较月份,月份大的日期较晚;如果年份和月份都相同,则比较日,日大的日期较晚。根据这种比较方式,我们就可以判断两个日期的先后关系。 计算间隔天数可以通过减法运算获得。假设第一个日期为A,第二个日期为B,我们可以将A的年、月、日分别与B的年、月、日相减,并将这个差值相加,即可得到间隔天数。如果差值为负数,则表示A日期在B日期之后,需要取绝对值。 计算间隔周数可以通过间隔天数与7进行整除得到。首先计算两个日期间隔天数D,然后将D除以7,取商即可得到间隔周数。如果D除以7的余数不为0,则表示有剩余的天数,不能整除,所以需要再加上1周。 总结起来,判断两个日期的先后关系,可以通过比较年、月、日的大小。计算间隔天数可以通过减法运算得到,而计算间隔周数可以通过间隔天数除以7得到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值