![](/img/trans.png)
[英]How to write a python function that returns date 30 days ago from given date
[英]Python Function that returns date from x days ago
我正在嘗試編寫返回 x 天前的日期的 function。 如果沒有給出日期,它應該默認為今天的日期。
def get_x_days_ago (x: date: datetime = datetime.today())
return date_x_days_ago
您可以使用datetime.datetime
和datetime.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
如果你想用datetime.datetime
object assert
結果。 例如,斷言“一天前”結果是否與一天前的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
object 而不必處理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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.