python计算时间差的方法


Posted in Python onMay 20, 2015

本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下:

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( )就可以得到结果。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python 切片和range()用法说明
Mar 24 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
python3 property装饰器实现原理与用法示例
May 15 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
python 实现两个线程交替执行
May 02 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
详解python程序中的多任务
Sep 16 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
Python中的流程控制详解
Feb 18 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 Python
python中sys.argv参数用法实例分析
May 20 #Python
python文件操作之目录遍历实例分析
May 20 #Python
Python中使用strip()方法删除字符串中空格的教程
May 20 #Python
python字典排序实例详解
May 20 #Python
在Python中操作字符串之startswith()方法的使用
May 20 #Python
Python中splitlines()方法的使用简介
May 20 #Python
在Python中用split()方法分割字符串的使用介绍
May 20 #Python
You might like
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
php表单处理操作
2017/11/16 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python处理按钮消息的实例详解
2017/07/11 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
介绍一下Linux中的链接
2016/05/28 面试题
招聘与培训专员岗位职责
2014/01/30 职场文书
建筑工地大门标语
2014/06/18 职场文书
二人合伙经营协议书
2014/09/13 职场文书
政府四风问题整改措施
2014/10/04 职场文书
技术股东合作协议书
2014/12/02 职场文书
团员个人总结
2015/02/26 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL