的Bonjour! 我想编写程序来计算租金到期时的28天周期,但是如果在年底我计算我迟交的租金的天数,我希望总计这些天数并根据我的代码中的付费日期计算它们。 问题是如何在全年插入多个付费日期,即12个用于计算我迟付的天数?如何在函数datepan中为它插入多个参数?
link:How to iterate over a timespan after days, hours, weeks and months in Python?
帮助表示赞赏。 留言Merci。
from datetime import date, datetime, timedelta
def datespan(startDate, endDate, paidDate,delta=timedelta(days=1)):
currentDate = startDate
while currentDate < endDate:
yield currentDate
currentDate += delta
dl = paidDate - currentDate
print (dl)
for day in datespan(date(2015,3,12 ), date(2015,12,31), date((2015,4,15), date(2015,5,14)),
delta=timedelta(days=28)):
print (day)
答案 0 :(得分:0)
看起来你想要使用varargs。这可以用python实现。您可以将方法签名更改为:
def datespan(startDate, endDate, delta, *paidDates)
这将允许您根据需要传入尽可能多的paidDates
个参数。请注意,您将无法再使用delta
的默认arg。
datespan(date(2015,3,12), date(2015,12,31), timedelta(days=28), date(2015,4,15), date(2015,5,14))
在这种情况下应该可以正常工作。您还需要修改函数来处理paidDates
的序列,而不是仅仅作为参数进行处理。