【问题标题】:accept multiple date arguments in a function在函数中接受多个日期参数
【发布时间】:2016-04-04 02:21:37
【问题描述】:

你好! 我想编写程序来计算租金到期时的 28 天周期,但是如果在年底我计算我迟交租金的天数,我希望将这些天数合计并根据我的代码中的支付日期计算它们. 问题是如何插入全年的多个支付日期,即 12 来计算我迟交的天数?如何在函数 datepan 中为其插入多个参数?

链接:How to iterate over a timespan after days, hours, weeks and months in Python?

帮助表示赞赏。 谢谢。

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)

【问题讨论】:

    标签: python date arguments tuples


    【解决方案1】:

    您似乎想使用可变参数。这可以通过 python 实现。您可以将方法签名更改为:

    def datespan(startDate, endDate, delta, *paidDates)

    这将允许您传入任意数量的paidDates 参数。请注意,您将无法再使用 delta 的默认参数。

    datespan(date(2015,3,12), date(2015,12,31), timedelta(days=28), date(2015,4,15), date(2015,5,14))

    在这种情况下应该可以正常工作。您还需要修改您的函数以处理一系列paidDates,而不是仅作为参数传入。

    【讨论】:

    • 得到这个错误:for day in datespan(date(2015,3,12), date(2015,12,31), timedelta(days=28), date((2015,4,15 ), date(2015,5,14))): TypeError: an integer is required (got type tuple)
    • date((2015,4,15) 中多了一个(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多