每个整数都是可能的年值吗?

Dav*_*ica 9 validation time date

我一直在阅读这篇令人兴奋和热闹的帖子,讲述一些关于时间的常见谎言.四十号是:

每个整数都是理论上可能的一年

这意味着每个整数都不是理论上可能的年份.这里的负面案例是什么?什么整数不是理论上可能的年份?

Kei*_*son 18

根据具体情况,0不是有效的年份编号.在我们目前正在使用的格里高利历(以及其前身,朱利安历法)中,第1年(CE/AD)紧接着是第-1年(公元前1年/公元前).(对于引入格里高利历之前的日期,我们可以使用朱利安历法或公历格里高利历).

在编程环境中,这可能与也可能不直接相关.不同的语言,库和框架以不同的方式表示年份.ISO 8601,例如,支持从年00009999,这里0000是1个BCE; 相互协议可以支持更广泛的范围.C标准库的某些实现只能表示从大约1901年到2038年的时间; 他人,使用64位time_t可以表示宽得多的范围内,并且典型地治疗-1,0以及1作为连续多年.

最终,您需要检查您正在使用的语言/库/框架的文档.

  • 关于ISO-8601或天文学家传统上用作计时的问题,答案是错误的.零在ISO-8601中有效.您可以将它用作`java.time.LocalDate`的输入年份.只有一个整数有效的真理.它取决于日历系统和/或数据库(某些数据库约束有效年份为1-9999)等. (4认同)
  • 120k的声誉,你发现'0'对于一个offtopic问题是一个好的答案? (4认同)
  • 平原"0"将是完全错误的,但是,作为米诺尔德已经指出:有哪一年有0 _existing_日历,它肯定_theoretically_可能创造另一个.答案需要资格"......在格里高利(或朱利安)日历中". (3认同)
  • @Jongware:是的,但与这个特定问题无关.理论上可能的年份在两者中是相同的. (2认同)