用于日期范围的标准日期增量类型。
就您传入的关键字args而言,其工作方式与relativedelta完全相同,不建议使用关键字n-最好在使用的关键字中指定n,但无论它是否适合您。 DateOffset子类需要n。
DateOffset的工作方式如下。每个偏移量指定一组符合DateOffset的日期。例如,Bday将此集合定义为工作日(M-F)的日期集合。为了测试日期是否在DateOffset dateOffset的集合中,我们可以使用is_on_offset方法:dateOffset.is_on_offset(date)。
如果日期不是有效日期,则可以使用rollback和rollforward方法将日期滚动到该日期之前/之后的最近有效日期。
可以创建DateOffsets以将日期向前移动给定数量的有效日期。例如,可以将Bday(2)添加到日期以将其向前移动两个工作日。如果日期不是从有效日期开始,则首先将其移动到有效日期。因此,伪代码为:
def __add __(date):date = rollback(date)#如果日期是有效的返回日期+ ,则不执行任何操作
如果创建的日期偏移量为负数,则日期将被前滚。伪代码为:
def __add __(date):date = rollforward(date)#什么都不做,日期是有效的返回日期+
零表示一个问题。它应该向前还是向后滚动?我们任意地将其前滚:
日期+ BDay(0)== BDay.rollforward(日期)
由于0有点怪异,我们建议避免使用它。
参数: