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写入中英文字符串到文件的方法
May 06 Python
Python运算符重载用法实例
May 28 Python
编写Python CGI脚本的教程
Jun 29 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
Python 动态变量名定义与调用方法
Feb 09 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
什么是python的id函数
Jun 11 Python
基于Python爬取素材网站音频文件
Oct 21 Python
python爬虫 requests-html的使用
Nov 30 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开发大型项目的一点经验
2006/10/09 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python如何查看网页代码
2020/06/07 Python
python实现图片转字符画的完整代码
2021/02/21 Python
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
卫生系统先进事迹
2014/05/13 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
工作经历证明范本
2015/06/15 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫