第一个函数time_calculator
可以根据用户的需求增加或减少时间。
第二个函数calculate_time_difference
可以计算两个时间点之间的差异。这两个函数都是自动化测试和时间管理中非常有用的工具。
from datetime import datetime, timedelta
def 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.days
seconds = time_diff.seconds
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
return {
'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']}秒")