ツェラーの公式
昨日、Pythonで計算できるようにしたツェラーの公式ですが、そいつをJavaScriptでも計算できるようにしてみました。またDOMを使ってブラウザで開いて確認できるようにもしています。
function get_day(year, month, date) { if (month <= 2) { month = month + 12; year -= 1; } var J = year.toString(); J = J.substring(0, 2); var K = year % 100; var m = month; var q = date var h = (q + Math.floor(((m + 1) * 26) / 10) + K + Math.floor(K / 4) + Math.floor(J / 4) - (2 * J)) % 7; return h; } function get_day_result() { var year = document.getElementById('YEAR'); year = Number(year.value); var month = document.getElementById('MONTH'); month = Number(month.value); var date = document.getElementById('DATE'); date = Number(date.value); var daynumber = get_day(year, month, date); var resulttext = '計算できませんでした。'; if (! isNaN(daynumber)) { var days = {0: '土', 1: '日', 2: '月', 3: '火', 4: '水', 5: '木', 6: '金'}; resulttext = '答は' + daynumber + '。' + days[daynumber] + '曜日。'; } var result = document.getElementById('RESULT'); var textnode = document.createTextNode(resulttext); result.replaceChild(textnode, result.childNodes[0]); } function set_today() { var today = new Date(); var year = document.getElementById('YEAR'); year.value = today.getFullYear(); var month = document.getElementById('MONTH'); month.value = today.getMonth() + 1; var date = document.getElementById('DATE'); date.value = today.getDate(); get_day_result(); }
このJavaScriptは次のHTMLと組み合わせて利用します。
<p><input id="YEAR" type="text" size="4" />年<input id="MONTH" type="text" size="2" />月<input id="DATE" type="text" size="2" />日 <input type="submit" value="計算する" onclick="get_day_result()" /></p> <p id="RESULT">計算結果</p> <script> set_today(); </script>