gpt4 book ai didi

返回 x 天前日期的 Python 函数

转载 作者:行者123 更新时间:2023-12-04 07:44:11 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数返回 x 天前的日期。如果未给出日期,则应默认为今天的日期。

def get_x_days_ago (x: date: datetime = datetime.today())
return date_x_days_ago

最佳答案

您可以使用 datetime.datetimedatetime.timedelta

from datetime import datetime, timedelta

def get_x_days_ago(x, date=None):
if date is None:
date = datetime.now()
return date - timedelta(days=x)

print(get_x_days_ago(1)) # 2021-04-26 15:43:53.448687

print(get_x_days_ago(365, datetime(2019, 1, 1))) # 2018-01-01 00:00:00
如果您想 assert结果为 datetime.datetime目的。例如,断言“一天前”的结果是否与 datetime 相同一天前。 assert get_x_days_ago(1).replace(hour=0, minute=0, second=0, microsecond=0) == datetime(2021, 4, 26)如果需要,可以将 return 语句改为 return (date - timedelta(days=x)).replace(hour=0, minute=0, second=0, microsecond=0)在您的原始问题预编辑中,您输入带注释的 datetime作为 date 的类型也作为返回类型。如果你不关心时间部分,那么你可以传递一个 datetime.date对象而不必处理 datetime.replace方法。 换句话说 ,代码变成
from datetime import date, timedelta

def get_x_days_ago(x, date_given=None):
if date_given is None:
date_given = date.today()
return date_given - timedelta(days=x)

print(get_x_days_ago(1)) # this is of `datetime.date` type
assert get_x_days_ago(1) == date(2021, 4, 26)
print(get_x_days_ago(365, date(2019, 1, 1))) # so is this

关于返回 x 天前日期的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67280997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com