python日期间隔天数_Python编程题5--计算两个日期之间相隔的天数
题目
已知任意两个日期,计算出两个日期之间相隔的天数。
实现思路1
这里我们运用 Python 里面内置模块 time 来处理问题。
已知2个日期,格式为 yyyy-mm-dd
通过 time.strptime() 方法,把日期时间字符串解析为时间元组
通过 time.mktime() 方法,把时间元祖转换为时间戳
根据2个日期对应的时间戳,得到2个日期相差的秒数,进而计算出间隔天数
代码实现
import time
def demo(day1, day2):
time_array1 = time.strptime(day1, "%Y-%m-%d")
timestamp_day1 = int(time.mktime(time_array1))
time_array2 = time.strptime(day2, "%Y-%m-%d")
timestamp_day2 = int(time.mktime(time_array2))
result = (timestamp_day2 - timestamp_day1) // 60 // 60 // 24
return result
day1 = "2018-07-09"
day2 = "2020-09-26"
day_diff = demo(day1, day2)
print("两个日期的间隔天数:{} ".format(day_diff))
实现思路2
这里我们不使用 时间函数 来处理问题,我们可以先计算出每个日期距离公元元年1月1日的总天数,再求出两个日期的间隔天数。
需要判断某个年份是不是闰年,如果是闰年,则该年份天数为365+1
通过一个列表来存储每月份的天数,如果所给的2个日期中,年份是闰年,则2月份天数为28+1
根据所给的日期,遍历年月日,分别计算出2个日期距离公元元年1月1日的总天数
两个总天数相减,即可求出两个日期之间的天数
注意:
闰年的计算方法是 "四年一闰,百年不闰,四百年再闰" ,也就是说一般有以下两个条件:
能被4整除且不能被100整除的是闰年
能被400整除的是闰年
代码实现
def is_leap_year(year):
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return 1
else:
return 0
def get_days(year, month, day):
days = 0
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_leap_year(year):
month_days[1] = 29
for i in range(1, year):
year_day = 365
if is_leap_year(i):
year_day = 366
days += year_day
for m in range(month - 1):
days += month_days[m]
days += day
return days
def get_result(start_time, end_time):
res = end_time - start_time
return res
year1, month1, day1 = 2018, 7, 9
year2, month2, day2 = 2020, 9, 26
days1 = get_days(year1, month1, day1)
days2 = get_days(year2, month2, day2)
day_diff = get_result(days1, days2)
print("两个日期的间隔天数:{} ".format(day_diff))
python日期间隔天数_Python编程题5--计算两个日期之间相隔的天数相关推荐
- 计算两个时间戳之间的自然天数
2019独角兽企业重金招聘Python工程师标准>>> 这两天需要计算两个时间戳之间相差的天数,以前很随意自然的想法就是两个数字相减,然后除以一天的秒数86400,但是这样反复测试都 ...
- python用蒙特卡洛法区间_python编程通过蒙特卡洛法计算定积分详解
想当初,考研的时候要是知道有这么个好东西,计算定积分...开玩笑,那时候计算定积分根本没有这么简单的.但这确实给我打开了一种思路,用编程语言去解决更多更复杂的数学问题.下面进入正题. 如上图所示,计算 ...
- python画点连线_python matplotlib 在指定的两个点之间连线方法
python matplotlib 在指定的两个点之间连线方法 为了找到matplotlib在两个点之间连线的方法真是费了好大功夫,最后还是决定用简单的 plt.plot 来解决.如果有好多对点,则可 ...
- python笑傲江湖统计字数_python编程题----字符串的处理(统计)
<射雕英雄传>是金庸的重要武侠作品之一.这里给出一个<射雕英雄传>的网络版本,文件名为"射雕英雄传-网络版.txt". ...
- oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数
在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...
- java 月份间隔_java计算两个日期之间相隔的月份(向下取整)
最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...
- mysql中日期相减_非凡教育教你excel怎么计算两个日期天数差和时间差
商务办公培训老师在本文中主要是介绍如何在excel中计算日期和时间,包括两个日期之间的天数.时间之间的差和显示样式. 首先,计算两个日期之间的天数.在excel中,两个日期直接相减就可以得到两个日期间 ...
- 使用Calendar 计算两个日期相差天数,
1.代码: public static void main(String[] args) throws ParseException {SimpleDateFormat sdf = new Simpl ...
- java怎么计算相隔多少天_java计算两个日期之间相差天数和相隔天数详解
大家看到文章标题"两个日期之间相差天数和相隔天数",是否有疑惑呢!从中文字面理解,"相差"和"相隔"是有区别的,然而就是这些区别害死很多人, ...
最新文章
- Eclipse中配置Tomcat
- TypeScript 里 never 类型的用法举例
- 【Darknet-Yolov3】Ubuntu 服务器上无权限出现 ./darknet: error while loading shared libraries: libcudart.so.8.0
- 工科数学分析无穷级数总结
- iOS - Base64转图片图片转Base64
- Linux 权限管理之基本权限
- OSPF的Router-id确定顺序和冲突情况
- android 5.1 改mac地址,mac地址可以随便改吗
- 第二章 认识的本质及其规律笔记
- 浙江高院:引导当事人用区块链存取证据,微版权提供一站式知识产权保护服务
- 基于机器学习的文本分类算法的研究
- 【大话设计模式】第0章 面向对象基础
- Fedora 15不能正常关机,总是卡死在关机画面上
- 卡尔曼滤波的细致讲解从一维到多维
- 135编辑器如何插入文件
- go 日志库zap的使用
- css flex换行且均匀分布
- 我们如何在Pinterest Ads中使用AutoML,多任务学习和多塔模型
- NDK撩妹三部曲(一)—站住同学,我这有个C++的so库,底层运算效率飞起,想不想要?
- python123判断ip地址合法性_判断IP地址的合法性
热门文章
- BZOJ2828 : 火柴游戏
- mysql中存储ip地址,将ip转换为整数存储
- java 坦克大战画坦克_java简易坦克大战(2)
- verilog ~|
- MAC电脑DNS劫持解决方法
- Everything指定用XYplorer打开目录路径
- 天津大学计算机学院研究生报录比,天津大学2017年考研报录比
- zabbix最新数据中,没有值 45653:20211111:181222.474 [Z3005] query failed: [1526] Unknown error 1526 [insert in
- kmeans python interation flag_机器学习经典算法-logistic回归代码详解
- AcrelCloud-9500电瓶车充电桩应用场景分析