如何在Python中对日期进行算术运算?
在本文中,我们将展示如何在Python中对日期进行算术运算。现在我们来看看5个示例−
- 给定日期加上若干天
-
给定日期减去若干天
-
给定日期加上若干天和小时
-
当前日期减去若干个月
-
给定日期加上若干年
阅读更多:Python 教程
示例1:给定日期加上若干天
算法(步骤)
以下是执行所需任务的算法/步骤−
- 使用import关键字导入datetime模块。
-
输入日期并创建一个变量来存储它。
-
输入日期格式字符串并创建一个变量来存储它。
-
使用strptime()函数(将字符串格式的时间戳格式化为日期时间对象)格式化给定的日期,并使用timedelta()函数将其加1天(通常用于计算日期之间的差异。它还可以用于在Python中操作日期,该函数使用户可以轻松地进行操作)。
-
通过将新日期对象和日期格式作为参数传递给strftime()函数(根据格式代码返回表示datetime对象的字符串),再次格式化新日期。
-
输出在旧日期之后增加1天的新日期。
以下程序返回给定日期加1后的日期−
# 导入datetime模块
import datetime
# 输入日期
inputDate = '21-04-2013'
# 给出日期格式
date_format = '%d-%m-%Y'
# 使用strptime()函数将日期格式化,然后将其加1天
date = datetime.datetime.strptime(inputDate, date_format) + datetime.timedelta(days=1)
# 格式化日期
date=date.strftime(date_format)
# 输出修改后的日期
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
# 输入日期
inputDate = '21-04-2013'
# 给定日期格式
date_format = '%d-%m-%Y'
# 使用strptime()函数进行日期格式化并将其减去2天
date = datetime.datetime.strptime(inputDate, date_format) - datetime.timedelta(days=2)
# 格式化日期
date=date.strftime(date_format)
# 打印修改后的日期
print('减去旧日期 {',inputDate,'} 2天后的新日期:',date)
输出
减去旧日期 { 21-04-2013 } 2天后的新日期: 19-04-2013
示例3:对给定日期添加天数和小时数
算法(步骤)
执行所需任务的算法/步骤如下−
- 使用import关键字导入datetime、timedelta模块。
-
使用datetime.now()函数(返回当前本地日期和时间)输入当前日期和时间以获取当前日期和时间,格式为HH:MM:SS。
-
使用timedelta()函数将当前日期增加所需的天数和小时数并将此新日期存储在变量中。
-
打印添加所需天数和小时数后的新日期。
以下程序返回给定日期增加小时和天后的新日期−
# 导入datetime、timedelta模块
from datetime import datetime, timedelta
# 获取当前日期和时间
currentDate = datetime.now()
print("当前日期和时间 = ", currentDate)
# 将当前日期加上若干天和小时
newDate = currentDate + timedelta(days=4, hours=3)
print('新日期:',newDate)
输出
当前日期和时间 = 2022-09-07 02:26:21.098855
新日期: 2022-09-11 05:26:21.098855
示例4:从当前日期中减去几个月
算法(步骤)
执行所需任务的算法/步骤如下−
- 使用import关键字导入datetime、relativedelta模块。
-
使用datetime()函数输入输入日期和时间。
-
打印给定的输入日期和时间。
通过将日期作为参数传递给relativedelta()函数并减去n个月(如5个月)来减去月份(relativedelta类型旨在应用于现有datetime,可以用于替换datetime的特定组件或表示时间间隔)。
- 打印减去月份后的新日期。
以下程序返回给定日期减去若干个月后的新日期−
# 导入datetime和relativedelta模块
import datetime
from dateutil.relativedelta import relativedelta
# 输入日期和时间(年,月,日,时,分,秒)
inputDatetime = datetime.datetime(2019, 9, 12, 8, 40, 7)
# 输出输入的日期和时间
print("输入日期和时间 = ", inputDatetime)
# 使用relativedelta函数减去5个月
newDate = inputDatetime - relativedelta(months = 5)
# 输出修改后的日期
print("5个月前 = ", newDate)
输出
输入日期和时间 = 2019-09-12 08:40:07
5个月前 = 2019-04-12 08:40:07
示例5:给定日期增加年数
方法与上述相同,但在此情况下,我们使用relativedelta()函数将给定的日期增加若干年,例如8年
以下程序返回增加后的给定日期−
# 导入datetime和relativedelta模块
import datetime
from dateutil.relativedelta import relativedelta
# 输入日期和时间(年,月,日,时,分,秒)
inputDatetime = datetime.datetime(2019, 9, 12, 8, 40, 7)
# 输出输入的日期和时间
print("输入日期和时间 = ", inputDatetime)
# 使用relativedelta函数增加8年
newDate = inputDatetime + relativedelta(years = 8)
# 输出修改后的日期
print("8年后 = ", newDate)
输出
输入日期和时间 = 2019-09-12 08:40:07
8年后 = 2027-09-12 08:40:07
结论
本文介绍了如何使用五个不同的示例,对给定的日期应用算术运算,如增加和减少年、月、日和小时。