如何在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

结论

在本文中,我们学习了如何使用五个不同的示例对给定日期应用算术运算,例如增加和减少年份、月份、天数和小时数。

更新于:2023年11月2日

7000+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告