gpt4 book ai didi

javascript - 在第 31 天或最近的一天重复每月一次的规则

转载 作者:行者123 更新时间:2023-12-03 09:55:33 24 4
gpt4 key购买 nike

您如何为每月重复的每月 31 日(或 30 日或 29 日)的事件指定规则,如果该月没有足够的天数,它会选择最接近的天数(即 2 月它会选择28 日或 29 日,4 月会选择 30 日)?

从技术上讲,我正在使用 rrule javascript 库(如果相关)。

为了添加上下文,我有一个表单,用户可以在其中指定重复开始日期(每年、每月、每周、每天),例如账单。如果账单通常在 30 日到期,那么 2 月将在 28 日(或 29 日)到期。

最佳答案

RRULE 有一个新的扩展名调用 RSCALE 覆盖那个案子。不幸的是,它还没有得到广泛的支持。不确定您正在使用的 Javascript rrule 库,但如果不是这样,您应该打开一个问题。
使用 RSCALE扩展您的RRULE看起来像这样:

FREQ=MONTHLY;RSCALE=GREGORIAN;BYMONTHDAY=31;SKIP=BACKWARD
具有此 RRULE 的事件每月每 31 日重复一次,除非那一天不存在,在这种情况下 SKIP=BACKWARD说“使用前一个有效日期”。
编辑
我刚刚知道不用 RSCALE 的另一种表达方式。 :
每个月的 31 日,回退到该月的最后一个有效日期:
FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1
每月 30 日,2 月回落至 28 日或 29 日(闰年)
FREQ=MONTHLY;BYMONTHDAY=28,29,30;BYSETPOS=-1
每月 29 日,非闰年回落至 2 月 28 日
FREQ=MONTHLY;BYMONTHDAY=28,29;BYSETPOS=-1
然而,正如我们所见,使用 RSCALE 显然更直观。 .

关于javascript - 在第 31 天或最近的一天重复每月一次的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com