python 怎么比较两个日期,并返回间隔天数

python 怎么比较两个日期,并返回间隔天数

例1:基本原理1

1 str 转成 datetime.datetime 类型
2 datetime.datetime 转成 秒
3 distance = int(1) - int(2)
4 返回间隔日期

例2:基本原理2

import time
from datetime import datetime


def date_distance(date1, date2):
    """
    1 str 转成 datetime.datetime 类型
    2 datetime.datetime 转成 秒
    3 distance_second = int(秒1) - int(秒2)
    4 return 两个日期的间隔天数
    """
    try:
        # 1 str 转成 datetime.datetime 类型
        date1 = datetime.strptime(date1, '%Y-%m-%d')
        date2 = datetime.strptime(date2, '%Y-%m-%d')
    except:
        print('时间转换失败!\n{} , {} 的格式应为 %Y-%m%d  例如:2021-05-09 '.format(date1, date2))
    # 2 datetime.datetime 转成 秒
    second1 = time.mktime(date1.timetuple())
    second2 = time.mktime(date2.timetuple())
    # 3 res = int(秒1) - int(秒2)
    distance_second = int(second1) - int(second2)
    # 4 返回间隔日期
    distance_date = int(distance_second / 60 / 60 / 24)
    if distance_date < 0:
        distance_date = -distance_date
    return distance_date


if __name__ == '__main__':
    res = date_distance('2021-05-05', '2021-05-08')
    print(res)

输出结果:
3
<class ‘int’>

例3:工作中实例

递归获取目录(文件夹)下的所有文件路径

# 删除超过90天的日志
"""
1 获取指定目录下 指定特征值 的所有日志文件
2 获取日志文件的日期
3 获取今日日期
4 日期间隔大于等于90,则删除改日志文件
"""
from base.os_tools import get_filepath # 这是我自己写的方法,作用是:递归获取指定目录下的所有文件的地址,文章链接已附后文

# 1 获取指定目录下的所有日志文件
filepath_list = get_filepath('../log', list())
for filepath in filepath_list:
	# 2 获取日志文件的日期
    result = re.search('_(\d+).log', filepath)
    date_log = result.group(1)
    # 3 获取今日日期
    date_now = datetime.now().strftime('%Y%m%d')
    # 4 日期间隔大于等于90,则删除改日志文件
    res = date_distance(date_now, date_log)
    if res >= 90:
        os.remove(filepath)
        print('成功删除文件:{}'.format(filepath))

输出结果:
成功删除文件:
…/log\prodect2_1_20210708.log

“递归获取文件路径”的文章链接:https://blog.csdn.net/yayazhai0226/article/details/118671067?spm=1001.2014.3001.5501

》》》各位同学,要是对您有用,请帮我点个赞呗!
》》》有任何意见&建议,希望咱们在评论区交流!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值