3

ライブラリ DateTime を使用して、誕生日の日付値を保存しています。

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

それらに対してメソッド .getDayOfYear() を実行すると、両方の値が 143 になります。しかし、1 つは 5 月 23 日で、もう 1 つは 5 月 22 日です。なぜ同じ値を返すのかわかりません。

4

4 に答える 4

7

2012年は366日(2月29日)、2013年は365日であるため、両方の日付が143日を返します。

2月以降のうるう年は通常のうるう年に比べて1日増えるため、1年の日数はうるう年で1日オフセットされます。

于 2012-10-11T18:42:12.930 に答える
5

毎年365日の長さではなく、366日の長さの年もあります。

2012年はうるう年です。つまり、2月29日に追加の日があります。2月28日より前の.getDayOfYear()日付の場合、は任意の年の同様の日付に対して同じ値を返します。2月28日以降.getDayOfYear()の日付の場合、両方の日付がうるう年にある場合、または両方の日付がうるう年にない場合は、同様の日付に対して同じ値を返します。それ以外の場合は、1つずつオフにする必要があります。

于 2012-10-11T18:42:25.990 に答える
3

うるう年。2012年はうるう年なので、2月29日があり、すべての「後の」日付が1スロット上にプッシュされます。したがって、5月22日は実際には両方の年の143日目です。

于 2012-10-11T18:42:39.307 に答える
1

2012年はうるう年でした。したがって、2013年5月23日は2012年5月23日の1日前に来ました。

于 2012-10-11T18:43:17.127 に答える