3

我正在使用库 DateTime 来存储生日的日期值。

 DateTime dateTime01Abegin = new DateTime(2013, 5, 23, 00, 00);
 DateTime dateTime01Bbegin = new DateTime(2012, 5, 22, 00, 00);

在它们上运行 .getDayOfYear() 方法,我得到的两个值都是 143。但是一个是 5 月 23 日,一个是 5 月 22 日 - 我不明白为什么他们返回相同的值!

4

4 回答 4

7

2012 年有 366 天(2 月 29 日),而 2013 年有 365 天,这就是两个日期都返回 143 的原因。

一年中的天数在闰年有一天的偏移量,因为在 2 月 28 日之后,闰年比正常年份多了一天。

于 2012-10-11T18:42:12.930 回答
5

不是每一年都是 365 天,有些年份是 366 天。

2012 年是闰年,这意味着它多了一天,即 2 月 29 日。对于 2 月 28 日之前的.getDayOfYear()日期,对于任何年份的类似日期,都将返回相同的值。对于 2 月 28 日之后.getDayOfYear()的日期,如果这两个日期都在闰年,或者这两个日期都不是闰年,则将返回相同日期的相同值。否则,它们应该相差一个。

于 2012-10-11T18:42:25.990 回答
3

闰年。2012 年是闰年,所以有一个 2 月 29 日,将所有“较晚”的日期推到一个位置,所以你的 5 月 22 日实际上是这两年的第 143 天。

于 2012-10-11T18:42:39.307 回答
1

2012年是闰年。所以 2013 年 5 月 23 日比 2012 年 5 月 23 日早了 1 天。

于 2012-10-11T18:43:17.127 回答