【发布时间】:2022-01-11 09:01:58
【问题描述】:
下面是一个搜索日期列表并返回指定日期出现次数的函数。我可以通过调用zettel(1) 将天数传递给relativedelta(days=x),但我也想传递若干年(即relativedelta(years=x))。
from datetime import date, datetime, timedelta
from dateutil.relativedelta import relativedelta
notelist = ['20211204', '20201205', '20191205', '20181205']
def zettel(x):
''' Returns the number of zettel created on this day 'x' years ago.'''
note_uuid = datetime.now() - relativedelta(days=x)
note_count = 0
for uuid in notelist:
if uuid == note_uuid.strftime('%Y%m%d'):
note_count += 1
return [x, note_count, note_uuid.strftime('%Y%m%d')]
print(f'[{zettel(1)[1]} new zettel yesterday.')
print(zettel(1))
我试过传入days、years 和带有的号码
note_uuid = datetime.now() - relativedelta(y=x)
但我明白了
NameError: name 'years' is not defined
当我用
print(f'[{zettel(years, 1)[1]})
我尝试将整个论点 days=1 和 year=1 传递给
note_uuid = datetime.now() - relativedelta(x)
但我明白了
TypeError: zettel() got an unexpected keyword argument 'years'
当我用
print(f'[{zettel(years=1)[1]})
如何将关键字“days”和“years”传递给函数 relativedelta?这可能吗?
此代码有效,但我想对其进行扩展,以便计算不同的天数或年数。
【问题讨论】:
标签: python-3.x function python-datetime