/*---------------------------------------- * day-of-week.js * Copyright (C) 2021 StraightApps.com, All Rights Reserved * January 31, 2021 初期版 *-----------------------------------------*/ /*---------------------------------------- * ここに直接書いたコードは、読み込み時に実行される。 *-----------------------------------------*/ var elem; var str, strTmp; // 本日の日付を表示します。 elem = document.getElementById("today"); str = "今日は " + date.getFullYear() + " 年 " + (date.getMonth()+1) + " 月 " + date.getDate() + " 日(" + getDayOfWeek(date.getDay()) + ")です。"; elem.innerHTML = str; // 年コンボボックスを作成します。 setYearCombo(); // 月コンボボックスを作成します。 setMonthCombo(); // 日コンボボックスを作成します。 setDayCombo(true); // 初期状態の操作方法メッセージ elem = document.getElementById("dow"); elem.innerHTML = '日付を指定し、「調べる」ボタンを押してください。
もっと前、もっと先の年を調べるには、「もっと前」「もっと先」ボタンを押します。'; /*---------------------------------------- * 「年」コンボボックスの作成 *-----------------------------------------*/ function setYearCombo() { elem = document.getElementById("year"); str = ''; elem.innerHTML = str; // 選択中の年を記録 selYear = baseYear; } /*---------------------------------------- * 「月」コンボボックスの作成 *-----------------------------------------*/ function setMonthCombo() { elem = document.getElementById("month"); str = ''; elem.innerHTML = str; // 選択中の月を記録 selMonth = month; } /*---------------------------------------- * 「日」コンボボックスの作成 *-----------------------------------------*/ function setDayCombo(bToday) { elem = document.getElementById("day"); str = ''; elem.innerHTML = str; // 選択中の日を記録 selDay = day; } /*---------------------------------------- * 「年」コンボボックスの値が変更されたとき * リストを表示しても変更なければ呼び出されません。 *-----------------------------------------*/ function changeYear(selectedYear) { // うるう年に当たる場合は、2月の日数が変わります。 selYear = selectedYear; // 2月選択中以外は、何もする必要はありません。 if (selMonth != 2){ return; } // うるう年かもしれないので、日コンボを再設定します。 // 2月に29日がある、or 2月29日選択中だが無効 setDayCombo(false); } /*---------------------------------------- * 「月」コンボボックスの値が変更されたとき *-----------------------------------------*/ function changeMonth(selectedMonth) { selMonth = selectedMonth; // 日コンボを再設定します。 setDayCombo(false); } /*---------------------------------------- * 「日」コンボボックスの値が変更されたとき *-----------------------------------------*/ function changeDay(selectedDay) { selDay = selectedDay; } /*---------------------------------------- * 「もっと前」「もっと先」ボタン処理 * 引数が 0 のときは「もっと前」 * 引数が 1 のときは「もっと先」 * それ以外は無視します。 *-----------------------------------------*/ function changeRange(param) { // 「もっと前」の場合 if (param == 0){ baseYear -= 10; } // 「もっと先」の場合 else if (param == 1 ){ baseYear += 10; } // それ以外 else{ return; } // 年コンボボックスを再作成します。 setYearCombo(); selYear = baseYear; // 2月選択中以外は、何もする必要はありません。 if (selMonth != 2){ return; } // うるう年かもしれないので、日コンボを再設定します。 // 2月に29日がある、or 2月29日選択中だが無効 setDayCombo(false); } /*---------------------------------------- * 「計算する」ボタン処理 *-----------------------------------------*/ function calc() { // 新しい Date オブジェクトを作成します。 // 第1引数は西暦年 // 第2引数は月(0ベース) // 第3引数は日(1ベース) // 以降の引数は省略して、デフォルトの値を使います。 var targetDate = new Date(selYear, selMonth - 1, selDay); // 文字列にして出力します。 elem = document.getElementById("dow"); str = targetDate.getFullYear() + " 年 " + (targetDate.getMonth()+1) + " 月 " + targetDate.getDate() + " 日は、" + getDayOfWeek(targetDate.getDay()) + "です。"; elem.innerHTML = str; } /*---------------------------------------- * 曜日文字列を返します。 * 0 なら日曜日、1 なら月曜日・・・ *-----------------------------------------*/ function getDayOfWeek(dow) { switch (dow){ case 0: return "日曜日"; case 1: return "月曜日"; case 2: return "火曜日"; case 3: return "水曜日"; case 4: return "木曜日"; case 5: return "金曜日"; case 6: return "土曜日"; } return "不明"; }