Cで実行してみたら401年は大丈夫でした。 ただ、2100年を超えたあたりから正常に判定できないみたいです。