python 时间计算器

第一个函数time_calculator可以根据用户的需求增加或减少时间。

第二个函数calculate_time_difference可以计算两个时间点之间的差异。这两个函数都是自动化测试和时间管理中非常有用的工具。

from datetime import datetime, timedeltadef time_calculator(start_date, days=0, hours=0, minutes=0, seconds=0, operation='add'):"""根据给定的起始时间,增加或减少指定的时间量。:param start_date: 起始日期时间字符串,格式为 'YYYY-MM-DD HH:MM:SS':param days: 要调整的天数:param hours: 要调整的小时数:param minutes: 要调整的分钟数:param seconds: 要调整的秒数:param operation: 操作类型,'add' 为增加时间,'subtract' 为减少时间:return: 调整后的日期时间字符串"""# 将字符串转换为datetime对象start_datetime = datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')# 根据操作类型调整时间if operation == 'add':new_datetime = start_datetime + timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)elif operation == 'subtract':new_datetime = start_datetime - timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)else:raise ValueError("operation 参数必须是 'add' 或 'subtract'")# 将新的datetime对象转换回字符串return new_datetime.strftime('%Y-%m-%d %H:%M:%S')# 使用示例
start_date = '2024-02-04 13:56:46'
# 增加时间
new_date_add = time_calculator(start_date, days=10, hours=5, minutes=30, operation='add')
# 减少时间
new_date_subtract = time_calculator(start_date, days=3, hours=2, minutes=15, operation='subtract')print(f"增加时间后的日期时间是:{new_date_add}")
print(f"减少时间后的日期时间是:{new_date_subtract}")def calculate_time_difference(start_date, end_date, time_format='%Y-%m-%d %H:%M:%S'):"""计算两个日期时间之间的差异。:param start_date: 起始日期时间字符串:param end_date: 结束日期时间字符串:param time_format: 日期时间的格式字符串,默认为 '%Y-%m-%d %H:%M:%S':return: 一个字典,包含天数、小时数、分钟数和秒数"""# 将字符串转换为datetime对象start_datetime = datetime.strptime(start_date, time_format)end_datetime = datetime.strptime(end_date, time_format)# 计算时间差time_diff = end_datetime - start_datetime# 获取时间差的各个部分days = time_diff.daysseconds = time_diff.secondshours = seconds // 3600minutes = (seconds % 3600) // 60seconds = seconds % 60return {'days': days,'hours': hours,'minutes': minutes,'seconds': seconds}# 使用示例
start_date = '2024-02-04 08:30:00'
end_date = '2024-02-06 12:45:30'
time_diff = calculate_time_difference(start_date, end_date)print(f"时间差为:{time_diff['days']}天, {time_diff['hours']}小时, {time_diff['minutes']}分钟, {time_diff['seconds']}秒")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453383.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL- 运维-分库分表-Mycat

一、Mycat概述 1、安装 2、概念介绍 二、Mycat入门 启动服务 三、Mycat配置 1、schema.xml 2、rule.xml 3、server.xml 四、Mycat分片 1、垂直分库 2、水平分表 五、Mycat管理及监控 1、Mycat原理 2、Mycat管理工具 (1)、命令行 (2&#…

PyTorch 2.2 中文官方教程(十)

使用整体追踪分析的追踪差异 原文:pytorch.org/tutorials/beginner/hta_trace_diff_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 作者: Anupam Bhatnagar 有时,用户需要识别由代码更改导致的 PyTorch 操作符和 CUDA 内核的变化…

elasticsearch重置密码操作

安装es的时候需要测试这个url:http://127.0.0.1:9200/ 出现弹窗让我输入账号和密码。我第一次登录,没有设置过账号和密码, 解决方法是:在es的bin目录下打开cmd窗口,敲命令:.\elasticsearch-reset-password…

基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…

openssl3.2 - use openssl cmd create ca and p12

文章目录 openssl3.2 - use openssl cmd create ca and p12概述笔记实验的openssl环境建立CA生成私钥和证书请求生成CA证书用CA签发应用证书用CA对应用证书进行签名将已经签名好的PEM证书封装为P12证书验证P12证书是否可用END openssl3.2 - use openssl cmd create ca and p12 …

YouTrack 用户登录提示 JIRA 错误

就算输入正确的用户名和密码,我们也得到了下面的错误信息: youtrack Cannot retrieve JIRA user profile details. 解决办法 出现这个问题是因为 YouTrack 在当前的系统重有 JIRA 的导入关联。 需要把这个导入关联取消掉。 找到后台配置的导入关联&a…

04-Java建造者模式 ( Builder Pattern )

建造者模式 摘要实现范例 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象 一个Builder 类会一步一步构造最终的对象,该 Builder 类是独立于其他对象的 建造者模式属于创建型模式,它提供了一种创建对…

Eclipse 安装使用ABAPGit

Eclipse->Help->Install New software 添加地址 https://eclipse.abapgit.org/updatesite/ 安装完成打开 选择abapGit repositories,先添加仓库 点下图添加自己仓库 如图添加仓库地址 添加完仓库后,点击我的仓库 右键选中行,可以进行push和pu…

PyTorch 2.2 中文官方教程(七)

使用 torchtext 库进行文本分类 原文:pytorch.org/tutorials/beginner/text_sentiment_ngrams_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 注意 点击这里下载完整示例代码 在本教程中,我们将展示如何使用 torchtext 库构建文…

寒假学习第24天---PythonPoc基础编写(二)

提示:所分享内容仅用于每一个爱好者之间的技术讨论及教育目的,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本作者不承担相应的后果。 文章目录 前言一、 目标二、过程思路实践开始 总结完整代…

linux下的预编译、编译、汇编、连接,生成单独文件,感受编译过程

linux下的预编译、编译、汇编、连接,生成单独文件。首先需要确认系统安装了gcc编译器,输入gcc -v或者g -v,如果能看到版本号等信息就是已经存在了,如图(centos7): 然后随便vim产生一个.cpp文件&…

python Flask 写一个简易的 web 端上传文件程序 (附demo)

python Flask 写一个简易的 web 端上传文件程序 (附demo) 需求介绍核心代码: 文件结构前端文件后端文件 完整代码演示 需求 在当今数字化时代,文件上传需求日益普遍。无论是个人还是企业,都可能需要实现文件上传功能。…