如何在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()函数,递增当前日期,并将此新日期存储在一个变量中。
将旧日期加一定的天数和小时数后打印新日期。
以下程序返回加一定小时数和天数后的给定日期:
# 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()函数将给定日期递增一些任意年份,例如8。
以下程序返回加一定年份后的给定日期:
# 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
结论
在本文中,我们学习了如何使用五个不同的示例对给定日期应用算术运算,例如增加和减少年份、月份、天数和小时数。