Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 每个整数都是可能的年份值吗?_Validation_Date_Time - Fatal编程技术网

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

Validation 每个整数都是可能的年份值吗?,validation,date,time,Validation,Date,Time,我刚刚读了这篇关于一些人的令人兴奋和搞笑的帖子。四十号是: 每个整数都是理论上可能的一年 这意味着每个整数都不是理论上可能的年份。这里的否定情况是什么?什么整数不是理论上可能的年份?根据上下文,0不是有效的年份号。在我们目前使用的公历(以及它的前身儒略历法)中,公元前1年(公元前1年)紧接着是公元前1年(公元前1年)。(对于公历引入之前的日期,我们可以使用儒略历或罗马历) 在编程环境中,这可能直接相关,也可能不直接相关。不同的语言、库和框架以不同的方式表示年份,例如,支持从0000到9999的年

我刚刚读了这篇关于一些人的令人兴奋和搞笑的帖子。四十号是:

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


这意味着每个整数都不是理论上可能的年份。这里的否定情况是什么?什么整数不是理论上可能的年份?

根据上下文,
0
不是有效的年份号。在我们目前使用的公历(以及它的前身儒略历法)中,公元前1年(公元前1年)紧接着是公元前1年(公元前1年)。(对于公历引入之前的日期,我们可以使用儒略历或罗马历)

在编程环境中,这可能直接相关,也可能不直接相关。不同的语言、库和框架以不同的方式表示年份,例如,支持从
0000
9999
的年份,其中
0000
为1 BCE;更广泛的范围可以由双方协议支持。C标准库的一些实现只能表示从1901年到2038年的时间;另一些,使用64位
时间
可以代表更大的范围,通常将
-1
0
1
视为连续年份


最终,您需要检查文档,了解您正在使用的任何语言/库/框架。

有趣的问题,但与编程无关……例如,没有0年@约翰尼3136不同意,因为这对于设计系统来说很重要。@约翰尼3136:你从来没有写过一个必须处理年份数字的程序?@DavidGrinberg你对“重要的一般编程知识”的定义和我完全不同。多态性是“重要的通用编程知识”,作用域和线程也是如此。这事实并非如此。内置的日期时间类对于大多数程序员来说已经足够了。从的转换还有几个额外的警告——比如,“你在为哪个国家检查日期?”根据西方日历,俄罗斯的Oktober革命发生在11月。(或者反过来说,我想不起来了。)@Jongware:是的,但与这个问题无关。理论上可能的年份是相同的。关于ISO-8601或天文学家传统上使用的计时,答案是错误的。零在ISO-8601中有效。您可以将其用作
java.time.LocalDate
的输入年份。只有一个事实是整数是有效的。这取决于日历系统和/或数据库(某些数据库限制有效年数范围为1-9999)等。120k信誉,您会发现“0”是对离题问题的正确答案?简单的“0”可能是完全错误的,不过,正如Meno Hochschild所指出的:现有日历的年份为0,从理论上讲,创造另一个是完全可能的。答案需要限定“……在公历(或儒略)中”。