第一个函数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']}秒")