JSで、指定した日程から50営業日後の日付を計算したいと思っています。
尚、指定した日程から「50日後」の日付を計算することはできたのですが、
「50営業日後(日曜・祝祭日は営業日にカウントしない)」の計算方法がわかりません。
例えば、5営業日で日曜と祝日が1日はさむ場合、日曜と祝日は営業日にカウントせず、
結果的に指定した日から7日後の日数を取得するみたいな処理にしたいです。
■現在の処理の流れ ※下記の2項目は対応済みです
1、日付をカレンダーから指定
2、指定した日程から50日後の日付を計算する(ここを50営業日後に変更をしたいです)
<body> <input type="date" id="today"> <p id="date011">設定日から50日後の日付が表示されます</p> <p>※日曜を挟む場合は翌日になります</p> <p>日曜が何回あるか?</p> <script> //カレンダー表示用 window.onload = function () { var today = new Date(); today.setDate(today.getDate()); var yyyy = today.getFullYear(); var mm = ("0" + (today.getMonth() + 1)).slice(-2); var dd = ("0" + today.getDate()).slice(-2); document.getElementById("today").value = yyyy + '-' + mm + '-' + dd; } //入力した日付を取得 var value = 0; function inputChange(){ var textbox = document.getElementById("today") value = textbox.value console.log("値の表示:" + value ); dateFunction011(); }; const textbox = document.getElementById("today") textbox.addEventListener('change', inputChange); //日付が選択された際の処理 function dateFunction011() { //日付オブジェクトを作成する var dd = new Date(value); //取得した曜日に特定の日数を追加する dd.setDate(dd.getDate() + 50); var month2 = dd.getMonth() + 1; //曜日取得 var day = dd.getDay(); //if (day == 0) { // dd.setDate(dd.getDate() + 1); //}; var day_base = dd.getDay(); var day_changed = ''; switch (day_base) { case 0: day_changed = "日曜日"; break; case 1: day_changed = "月曜日"; break; case 2: day_changed = "火曜日"; break; case 3: day_changed = "水曜日"; break; case 4: day_changed = "木曜日"; break; case 5: day_changed = "金曜日"; break; case 6: day_changed = "土曜日"; break; }; var pelem011 = document.getElementById("date011"); pelem011.innerHTML = "50日後の日付: " + dd.getFullYear() + "年" + month2 + "月" + dd.getDate() + "日" + day_changed; } </script> </body>
■この後に行う予定の処理 ※こちらが知りたい内容になります
3、日曜を営業日から除外をして計算をする
(指定した日程から50日間の間で日曜が何日あるかカウントする方法が知りたいです。)
4、祝日に指定してある日程は除外して計算をする
(通常、どのような形で除外日(祝日)を設定し、除外日が何日あるかカウントする方法が知りたいです。)
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/06 08:16