题目

已知任意两个日期,计算出两个日期之间相隔的天数。

实现思路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--计算两个日期之间相隔的天数相关推荐

  1. 计算两个时间戳之间的自然天数

    2019独角兽企业重金招聘Python工程师标准>>> 这两天需要计算两个时间戳之间相差的天数,以前很随意自然的想法就是两个数字相减,然后除以一天的秒数86400,但是这样反复测试都 ...

  2. python用蒙特卡洛法区间_python编程通过蒙特卡洛法计算定积分详解

    想当初,考研的时候要是知道有这么个好东西,计算定积分...开玩笑,那时候计算定积分根本没有这么简单的.但这确实给我打开了一种思路,用编程语言去解决更多更复杂的数学问题.下面进入正题. 如上图所示,计算 ...

  3. python画点连线_python matplotlib 在指定的两个点之间连线方法

    python matplotlib 在指定的两个点之间连线方法 为了找到matplotlib在两个点之间连线的方法真是费了好大功夫,最后还是决定用简单的 plt.plot 来解决.如果有好多对点,则可 ...

  4. python笑傲江湖统计字数_python编程题----字符串的处理(统计)

    <射雕英雄传>是金庸的重要武侠作品之一.这里给出一个<射雕英雄传>的网络版本,文件名为"射雕英雄传-网络版.txt". ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬ ...

  5. oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数

    在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...

  6. java 月份间隔_java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  7. mysql中日期相减_非凡教育教你excel怎么计算两个日期天数差和时间差

    商务办公培训老师在本文中主要是介绍如何在excel中计算日期和时间,包括两个日期之间的天数.时间之间的差和显示样式. 首先,计算两个日期之间的天数.在excel中,两个日期直接相减就可以得到两个日期间 ...

  8. 使用Calendar 计算两个日期相差天数,

    1.代码: public static void main(String[] args) throws ParseException {SimpleDateFormat sdf = new Simpl ...

  9. java怎么计算相隔多少天_java计算两个日期之间相差天数和相隔天数详解

    大家看到文章标题"两个日期之间相差天数和相隔天数",是否有疑惑呢!从中文字面理解,"相差"和"相隔"是有区别的,然而就是这些区别害死很多人, ...

最新文章

  1. Eclipse中配置Tomcat
  2. TypeScript 里 never 类型的用法举例
  3. 【Darknet-Yolov3】Ubuntu 服务器上无权限出现 ./darknet: error while loading shared libraries: libcudart.so.8.0
  4. 工科数学分析无穷级数总结
  5. iOS - Base64转图片图片转Base64
  6. Linux 权限管理之基本权限
  7. OSPF的Router-id确定顺序和冲突情况
  8. android 5.1 改mac地址,mac地址可以随便改吗
  9. 第二章 认识的本质及其规律笔记
  10. 浙江高院:引导当事人用区块链存取证据,微版权提供一站式知识产权保护服务
  11. 基于机器学习的文本分类算法的研究
  12. 【大话设计模式】第0章 面向对象基础
  13. Fedora 15不能正常关机,总是卡死在关机画面上
  14. 卡尔曼滤波的细致讲解从一维到多维
  15. 135编辑器如何插入文件
  16. go 日志库zap的使用
  17. css flex换行且均匀分布
  18. 我们如何在Pinterest Ads中使用AutoML,多任务学习和多塔模型
  19. NDK撩妹三部曲(一)—站住同学,我这有个C++的so库,底层运算效率飞起,想不想要?
  20. python123判断ip地址合法性_判断IP地址的合法性

热门文章

  1. BZOJ2828 : 火柴游戏
  2. mysql中存储ip地址,将ip转换为整数存储
  3. java 坦克大战画坦克_java简易坦克大战(2)
  4. verilog ~|
  5. MAC电脑DNS劫持解决方法
  6. Everything指定用XYplorer打开目录路径
  7. 天津大学计算机学院研究生报录比,天津大学2017年考研报录比
  8. zabbix最新数据中,没有值 45653:20211111:181222.474 [Z3005] query failed: [1526] Unknown error 1526 [insert in
  9. kmeans python interation flag_机器学习经典算法-logistic回归代码详解
  10. AcrelCloud-9500电瓶车充电桩应用场景分析