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获取豆瓣电影简介代码分享
Jan 16 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
详解Python命令行解析工具Argparse
Apr 20 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
在python中实现对list求和及求积
Nov 14 Python
python基础梳理(一)(推荐)
Apr 06 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
python设置环境变量的原因和方法
Jun 24 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 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
多人战的战术与战略
2020/03/04 星际争霸
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
checkbox 复选框不能为空
2009/07/11 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python中is和==的区别详解
2018/11/15 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
Structs界面控制层技术
2013/10/11 面试题
招股说明书范本
2014/05/06 职场文书
美容院合作经营协议书
2014/10/10 职场文书
2015年财政所工作总结
2015/04/25 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL