日期和日历

Gambas 使用公历

维基百科告诉我们:

"公历是世界上大部分地区使用的历法。它是由教皇格列高利十三世于 1582 年 10 月推出的,是对儒略历的一个小修改,将平均年从 365.25 天减少到 365.2425 天,从而纠正了与公历的偏差。在此期间的几个世纪中,误差所造成的太阳年..."

假设每个国家和每个人都使用自己的日历系统,这些系统与日常的日历系统并不匹配。因为有些遵循太阳,有些遵循月亮,以不同的方式计算月份,以不同的方式计算年份,从早上或晚上开始一天,日历中存在一些类似于儒略/格里高利转换的漏洞,等等......人类的想象力没有限制。

现在,世界上大多数人都或多或少地了解了公历,因此它是协调世界时 (UTC) 时间的一个很好的候选者。

Gambas几乎用的是公历!

在 Gambas 中,日期在内部存储为自 BC 4801 年 1 月 1 日 以来的天数。

但这个日期实际上是公历延伸到过去的日期。因为公历是在 1582 年 10 月 15 日 被采用的,至少在天主教的欧洲世界是如此。

换句话说:

  • 1582 年 10 月 15 日 ,以及接下来的日子是准确的。

  • 1582年10月15日 的前一天不是儒略历的 1582年10月4日 ,而是**1582年10月14日**。等等。

这是设计使然:出于性能和简单性的考虑,方便整数和日期之间的转换以及日期算术。

请注意,在扩展的公历中,没有年份**0**。 1 BC 之后的一年是 1 AC

结论

使用WeekDay 函数 时必须小心。一旦您的日期低于1​​582 年 10 月 15 日,返回的日期就是错误的。

您还必须小心,根据国家/地区的不同,采用公历的时间也不同:例如,威廉·莎士比亚和米格尔·德·塞万提斯似乎在同一天去世(1616 年 4 月 23 日),但塞万提斯在 1616 年比莎士比亚在真实的时间里早十天去世。(西班牙使用公历,但英国使用儒略历)。

DateChooser 控件不处理特定的日历。这可能是一个有趣的开发:添加对不同日历的支持,并在 Gambas 日期和本地日期之间进行透明转换。

也可以看看