gpt4 book ai didi

datetime - 日期滚动在哪里有用?

转载 作者:行者123 更新时间:2023-12-03 23:13:50 26 4
gpt4 key购买 nike

我正在阅读 Phobos 文档。有些方法的逻辑有时候看不懂。

Date roll

Adds the given number of years or months to this Date. A negative number will subtract. The difference between rolling and adding is that rolling does not affect larger units.

也许是 Phobos 的考虑不好,也许我不明白它有什么用处。

如果我添加到 2013-07-01 例如 200 天,我希望得到 2014 年,而不是 2013 年。

谁能解释一下逻辑?

最佳答案

roll 也出现在 Java 中......我记得唯一一次在这两种语言中使用过它,但实现了一个小的日期选择器小部件。每件事都有单独的字段:月、日、年,并且您希望用户能够在不增加月份的情况下旋转天数,因为它们是单独的字段。 (假设它被设置为第 30 个并且他们想选择第一个。最快的方法可能是直接点击向上箭头并让它滚动。)

可能还有其他用途,我现在不记得了。即使我前段时间实现 ical 支持(可悲的是,专有的),我也从未使用过 roll 方法,但那里可能有它的潜力。 ical 是日历上重复事件的标准,其中有一些棘手的事情,您可以通过几种不同的方式来实现它。

在评论中,您还问为什么不能添加天。原因是添加天数非常简单,并且被 opBinary 覆盖:

datetime += 5.days; // works

但这几个月都行不通,因为几个月的持续时间是可变的。这就是 add 方法发挥作用的地方:假设现在是 1 月 30 日,而您添加了一个月。您可以只添加 31 天,因为 1 月份有 31 天。那将使您在 3 月 2 日登陆(我认为,在我的脑海中这样做)......但 1 月 30 日 + 1 个月可能也需要是 2 月 28 日。或者可能是 2 月 29 日。假设您要支付每月到期的账单每个月,这些截止日期之间的天数会发生变化。

add 方法会处理这个问题,并让您可以选择是在最后一天跌落,还是延续到下个月。

不过,我有点认为日子也没有静态长度……考虑 DST 过渡。 (或闰秒,但处理它们会很疯狂)。也许我们可以问问 JMD。

关于datetime - 日期滚动在哪里有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772773/

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