如何在 Python 中对日期执行算术运算?
在本文中,我们将向您展示如何在 Python 中对 日期 执行算术运算。现在,我们来看 5 个关于此任务的示例:
向给定日期添加天数
从给定日期减去天数
向给定日期添加天数和小时数
从当前日期减去月份
向给定日期添加年份
示例 1:向给定日期添加天数
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤:
使用 import 关键字,导入 **datetime** 模块。
输入日期并 创建变量 来存储它。
输入日期格式字符串并创建变量来存储它。
使用 **strptime() 函数**(将字符串格式的时间戳格式化为日期时间对象)格式化给定日期,并使用 **timedelta() 函数**(通常用于 计算两个日期之间的差异。它也可用于操作 Python 中的日期,此函数使用户可以轻松地做到这一点。)向其添加 1 天。
通过将新的日期对象和日期格式作为参数传递给它,再次使用 **strftime() 函数**(根据格式代码返回表示 datetime 对象的字符串)格式化新日期。
将旧日期加 1 后,打印新日期。
以下程序返回给定日期加 1 后结果:
# importing datetime module import datetime # input date inputDate = '21-04-2013' # giving the date format date_format = '%d-%m-%Y' # formatting the date using strptime() function and adding 1 day to it date = datetime.datetime.strptime(inputDate, date_format) + datetime.timedelta(days=1) # Formatting the date date=date.strftime(date_format) # Printing the modified date print('New Date after incrementing old date {',inputDate,'} by 1 is:',date)
输出
New Date after incrementing old date { 21-04-2013 } by 1 is: 22-04-2013
示例 2:从给定日期减去天数
这与上一个方法类似,但这次我们从给定日期减去某个随机数,例如 2,如下所示。
以下程序返回给定日期减 2 后结果:
import datetime # input date inputDate = '21-04-2013' # giving the date format date_format = '%d-%m-%Y' # formatting the date using strptime() function and subtracting 2 days from it date = datetime.datetime.strptime(inputDate, date_format) - datetime.timedelta(days=2) # Formatting the date date=date.strftime(date_format) # Printing the modified date print('New Date after decrementing old date {',inputDate,'} by 2 is:',date)
输出
New Date after decrementing old date { 21-04-2013 } by 2 is: 19-04-2013
示例 3:向给定日期添加天数和小时数
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤:
使用 import 关键字导入 datetime、timedelta 模块。
使用 **datetime.now() 函数**(返回当前本地日期和时间)输入当前日期和时间,以 HH:MM:SS 格式获取当前日期和时间。
通过将天数和小时数作为参数传递给 timedelta() 函数,将当前日期加 1,并将此新日期存储在一个变量中。
将旧日期加 1 后,打印新日期和小时数。
以下程序返回给定日期加 1 后结果:
# importing datetime, timedelta modules from datetime import datetime, timedelta # getting the current date and time currentDate = datetime.now() print("The Current Date and Time = ", currentDate) # Incrementing the current date with some random days and hours newDate = currentDate + timedelta(days=4, hours=3) print('New Date:',newDate)
输出
The Current Date and Time = 2022-09-07 02:26:21.098855 New Date: 2022-09-11 05:26:21.098855
示例 4:从当前日期减去月份
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤:
使用 import 关键字导入 datetime、relativedelta 模块。
使用 datetime() 函数输入输入日期和时间。
打印给定的输入日期和时间。
通过将月份作为参数传递给 **relativedelta() 函数**(**relativedelta** 类型旨在应用于现有的 datetime,可用于替换该 datetime 的特定组件或表示时间间隔),从给定日期减去 n 个月(例如 5)。
从给定日期减去月份后,打印新日期。
以下程序返回给定日期减去月份后的结果:
# importing datetime, relativedelta modules import datetime from dateutil.relativedelta import relativedelta # input date and time in (yy,mm,dd,hh,mm,ss) inputDatetime = datetime.datetime(2019, 9, 12, 8, 40, 7) # printing the input date and time print("Input Date and time = ", inputDatetime) # Subtracting 5 months using the relativedelta function newDate = inputDatetime - relativedelta(months = 5) # Printing the modified date print("5 Months Ago = ", newDate)
输出
Input Date and time = 2019-09-12 08:40:07 5 Months Ago = 2019-04-12 08:40:07
示例 5:向给定日期添加年份
此方法与上述方法相同,但在此情况下,我们使用 relativedelta() 函数将给定日期加 1,例如加 8 年。
以下程序返回给定日期加 1 年后的结果:
# importing datetime, relativedelta modules import datetime from dateutil.relativedelta import relativedelta # input date and time in (yy,mm,dd,hh,mm,ss) inputDatetime = datetime.datetime(2019, 9, 12, 8, 40, 7) # printing the input date and time print("Input Date and time = ", inputDatetime) # Incrementing 8 years using the relativedelta function newDate = inputDatetime + relativedelta(years = 8) # Printing the modified date print("After 8 years = ", newDate)
输出
Input Date and time = 2019-09-12 08:40:07 After 8 years = 2027-09-12 08:40:07
结论
在本文中,我们学习了如何使用五个不同的示例对给定日期应用算术运算,例如增加和减少年份、月份、天数和小时数。