gpt4 book ai didi

date - 是否有关于如何在有进位的日期上增加月份的建议或规范?

转载 作者:行者123 更新时间:2023-12-05 04:21:45 27 4
gpt4 key购买 nike

ISO-8601定义了时间间隔,例如P1M是一个月。

然而,它似乎并没有规定如何确定从给定日期算起的一个月是哪一天。

我查阅了 sqlite 的文档在他们的实现中,给定 YYYY-MM-DD,加一个月就是给 MM 加 1,然后归一化(如果 MM 大于 12,则递增年份,然后如果 DD 大于结果月份的天数,然后结转到下个月)。

但是这会产生不一致:

  • 2020-01-29 + P1M = 2020-02-29
  • 2020-01-30 + P1M = 2020-03-01
  • 2020-01-31 + P1M = 2020-03-02
  • 2020-02-01 + P1M = 2020-03-01 ‽,请注意,这比以前早

另外,用这个方法,如果我指定的间隔是一个月零一天,是先加一个月,再加一天,还是先加一天,再加一个月?

  • 2020-01-30 + P3D + P1M = 2020-02-02 + P1M = 2020-03-02
  • 2020-01-30 + P1M + P3D = 2020-03-01+ P3D = 2020-03-04,如果我们先添加月份,则稍后

问题是:当向日期添加间隔时,当间隔指定年份或月份(可变持续时间)时,是否有任何规范的方法可以继续?

最佳答案

在大多数(如果不是全部)标准中,大多数(如果不是全部)标准都故意未指定间隔形式的术语月的实际实现。

广为接受的定义是大约 30 天。 365.25/12 的整数舍入。

使用的方法因几个因素而异:

简单方便:

更容易记住平常的日子。

  • 我的电费账单在每个月的 11 日到期。当天数大于 28 时,这是有问题的。
  • 我在每个月的最后一天收到工资。
  • session 在每个月的第二个星期二举行。

易于计算:

固定月份定义。

  • 新购买的 30 天宽限期。

天文数字:

基于月球:我对简明扼要的描述深表歉意。

  • 月相:基于月相:29.18 到大约 29.93 天(构成我们现代系统的基础)
  • 恒星:基于“固定”恒星经过。 27.321 天
  • 热带:基于春分(北半球)天体:27.321 天
  • 近点:基于椭圆轨道的角度:27.554 天
  • 龙:基于椭圆平面的角度:27.212 天

一个偶数的太阳月是:

约 365.2422/12 ~= 30.43685 天

偶数日历月为:

平年:30.4166666667天

闰年:30.5天

或以周为单位:刚刚超过 4 周。

这并不是一个详尽的列表。这里没有包含更多历史或深奥的定义。

如果我今天遗漏了一个,请告诉我。


主要的收获是没有一个定义适合所有目的。

保持一致和透明:

选择一个并坚持下去。让大家知道。

关于date - 是否有关于如何在有进位的日期上增加月份的建议或规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74159170/

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