節分は毎年2月3日です。しかし昔は2月4日の年もあったような気がします。
調べてみると1952年から1984年までは閏年は2月4日が節分でした。若い人はこの事実を知らないでしょう。
ウィキペディアに節分が何日かを求める表が載っていたので、JavaScriptで関数を書いてみました。
西暦年を与えると2月の何日かを返します。1901年から2100年まで対応しています。
function setsubun(nen) {
var errorMessage = "年が範囲外です。";
if(nen < 1901) {
throw new Error(errorMessage);
} else if(nen < 1915) {
return(nen - 1) % 4 < 1 ? 3 : 4;
} else if(nen < 1952) {
return(nen - 1) % 4 < 2 ? 3 : 4;
} else if(nen < 1985) {
return(nen - 1) % 4 < 3 ? 3 : 4;
} else if(nen < 2021) {
return 3;
} else if(nen < 2055) {
return(nen - 1) % 4 < 1 ? 2 : 3;
} else if(nen < 2088) {
return(nen - 1) % 4 < 2 ? 2 : 3;
} else if(nen < 2101) {
return(nen - 1) % 4 < 3 ? 2 : 3;
} else {
throw new Error(errorMessage);
}
}
var errorMessage = "年が範囲外です。";
if(nen < 1901) {
throw new Error(errorMessage);
} else if(nen < 1915) {
return(nen - 1) % 4 < 1 ? 3 : 4;
} else if(nen < 1952) {
return(nen - 1) % 4 < 2 ? 3 : 4;
} else if(nen < 1985) {
return(nen - 1) % 4 < 3 ? 3 : 4;
} else if(nen < 2021) {
return 3;
} else if(nen < 2055) {
return(nen - 1) % 4 < 1 ? 2 : 3;
} else if(nen < 2088) {
return(nen - 1) % 4 < 2 ? 2 : 3;
} else if(nen < 2101) {
return(nen - 1) % 4 < 3 ? 2 : 3;
} else {
throw new Error(errorMessage);
}
}
2021年1月14日追記
コードに誤りがあったので修正しました。
コメント