閏年判定を短く記述したいのであればN=28+!(DY MOD 4)-!(DY MOD 100)+!(DY MOD 400)なんてどうでしょうか? 閏年に関しては西暦が「4で割り切れる」「100で割り切れる」「400で割り切れる」という3つの条件を考える必要があります。 4で割り切れない、100で割り切れない、400で割り切れない→閏年ではない 4で割り切れる、100で割り切れない、400で割り切れない→閏年 4で割り切れる、100で割り切れる、400で割り切れない→閏年ではない 4で割り切れる、100で割り切れる、400で割り切れる→閏年 実は、3つの条件は独立したものではなく「4で割り切れる数の集合⊃100で割り切れる数の集合⊃400で割り切れる数の集合」という包含関係になっています。 (続く)