yearのうるう年の処理
うるう年の処理は
- 400で割り切れる年はうるう年
- それ以外で100で割り切れる年は平年
- それ以外で4で割り切れる年はうるう年
- それ以外は平年
という処理なら分かる。でも実際のコードは
- 400年から799年まではうるう年
- それ以外で100年から199年は平年
- それ以外で4年から7年まではうるう年
- それ以外は平年
という処理になってる。
あと、urの処理で頭が混乱してると思うので、
で2パートに分けると、わかりやすくなるよ。
monthの処理
という処理が、実際のコードは
という表現になっていて、3月以降の加算が無効になってる。
off-by-one error(一個外れエラー)にならず、正しく書けているところ、
3月以降に、ちゃんとうるう年の処理が入ってるところは素敵。
演算子を正しく理解すれば、上達するはず。
ツイートシェア