Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

python 日期加减的几种方法


在 Python 中,日期加减可以通过多种不同的方法实现。

方法一:使用 datetime 模块

from datetime import datetime, timedelta

# 当前日期
current_date = datetime.now()
print("当前日期:", current_date)

# 加一天
next_day = current_date + timedelta(days=1)
print("加一天:", next_day)

# 减一天
previous_day = current_date - timedelta(days=1)
print("减一天:", previous_day)

# 加一周
next_week = current_date + timedelta(weeks=1)
print("加一周:", next_week)

# 减一周
previous_week = current_date - timedelta(weeks=1)
print("减一周:", previous_week)

# 加一个月
next_month = current_date + timedelta(days=30)
print("加一个月:", next_month)

# 减一个月
previous_month = current_date - timedelta(days=30)
print("减一个月:", previous_month)

# 加一年
next_year = current_date + timedelta(days=365)
print("加一年:", next_year)

# 减一年
previous_year = current_date - timedelta(days=365)
print("减一年:", previous_year)

方法二:使用 dateutil 库

from datetime import datetime
from dateutil.relativedelta import relativedelta

# 当前日期
current_date = datetime.now()
print("当前日期:", current_date)

# 加一天
next_day = current_date + relativedelta(days=1)
print("加一天:", next_day)

# 减一天
previous_day = current_date - relativedelta(days=1)
print("减一天:", previous_day)

# 加一周
next_week = current_date + relativedelta(weeks=1)
print("加一周:", next_week)

# 减一周
previous_week = current_date - relativedelta(weeks=1)
print("减一周:", previous_week)

# 加一个月
next_month = current_date + relativedelta(months=1)
print("加一个月:", next_month)

# 减一个月
previous_month = current_date - relativedelta(months=1)
print("减一个月:", previous_month)

# 加一年
next_year = current_date + relativedelta(years=1)
print("加一年:", next_year)

# 减一年
previous_year = current_date - relativedelta(years=1)
print("减一年:", previous_year)

方法三:使用 calendar 库

import calendar

# 当前日期
current_year = 2023
current_month = 7
current_day = 7
print("当前日期:", current_year, current_month, current_day)

# 加一天
_, next_day = calendar.monthrange(current_year, current_month)
next_day = min(next_day, current_day + 1)
print("加一天:", current_year, current_month, next_day)

# 减一天
_, previous_month_last_day = calendar.monthrange(current_year, current_month - 1)
previous_day = max(previous_month_last_day, current_day - 1)
print("减一天:", current_year, current_month, previous_day)

# 加一周
_, last_day = calendar.monthrange(current_year, current_month)
next_week = min(last_day, current_day + 7)
print("加一周:", current_year, current_month, next_week)

# 减一周
previous_week = max(1, current_day - 7)
print("减一周:", current_year, current_month, previous_week)

# 加一个月
next_month = current_month + 1 if current_month != 12 else 1
next_year = current_year + 1 if current_month == 12 else current_year
print("加一个月:", next_year, next_month, current_day)

# 减一个月
previous_month = current_month - 1 if current_month != 1 else 12
previous_year = current_year - 1 if current_month == 1 else current_year
print("减一个月:", previous_year, previous_month, current_day)

# 加一年
next_year = current_year + 1
print("加一年:", next_year, current_month, current_day)

# 减一年
previous_year = current_year - 1
print("减一年:", previous_year, current_month, current_day)

总结

这些方法在实现日期加减时有一些异同:

  1. 第一种方法使用了 datetime 模块的 timedelta 类,提供了直观的方式来执行日期加减操作。它可以精确到微秒级别,并且支持加减年、月、日、小时、分钟、秒等时间单位。这是 Python 内置的标准库,无需额外导入。

  2. 第二种方法使用了 dateutil 库的 relativedelta 类,它提供了更加灵活和人性化的日期计算方式。与 timedelta 相比,relativedelta 支持更多的日期偏移选项,例如加减月份、年份等。需要安装 dateutil 库,可以使用 pip install python-dateutil 进行安装。

  3. 第三种方法使用了 calendar 库来进行日期加减。它提供了一些与日历相关的功能,包括获取每月的天数等。这种方法更适合进行简单的日期加减,但不支持以小时、分钟和秒为单位的加减操作。无需额外导入,是 Python 的标准库之一。

根据实际需求和代码的复杂度,选择适合的方法来进行日期加减操作。datetime 模块是最常用的方法之一,而 dateutil 库提供了更多的灵活性。calendar 库适合简单的日期加减场景。

在Java中执行日期加减操作有多种方式,下面我将为您介绍其中几种常见的实现方式,以及它们的步骤流程和示例代码。示例代码:###使用Joda- ...
在Python中,日期转换为字符串有多种方法,具体如下:###使用datetime模块的strftime方法原理:使用`strftime`方 ...
python 读取 csv 形式的数据,有非常多的方式,这里主要介绍常用的几种方式,从基于标准库到 pandas 等开源库自带的函数。 ...
###方法一:使用循环遍历###方法二:使用toArray()方法###方法三:使用StreamAPI###方法四:使用第三方库Apache ...
###方法一:Java8LocalDate类这是Java8中引入的日期和时间API。Maven坐标:Gradle坐标:实现过程:该方法使用循 ...