Javascriptで毎月の第3日曜日のみの日付を取得し、フォームのセレクトボックスに何件か表示できるようにしたいです。
調べて見て以前似たような記事を見つけたのですが、その記事は毎週土曜日のみで、それを毎月第3日曜日に限定することが自分には出来ませんでした。
http://oshiete.goo.ne.jp/qa/5738655.html
ご教授頂けると嬉しいです。
どうぞよろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
<form name=さあ選びたまえ><select name=今年の第三日曜を></select></form>
<script>
/**
* 曜日指定で日付を生成します.
* <pre>
* makeDate(2014, 0, 1) // 一月一日
* makeDate(2014, 6, 'mon3') // 七月の第三月曜
* makeDate(2014, 11, 'sun-1') // 今年最後の日曜
* </pre>
* @param {number} year 西暦年数
* @param {number} month 月数(0-11)
* @param {number|string} day 数字または曜日文字列
* @return {Date} 生成した日付
*/
function makeDate(year, month, day) {
if (typeof day == 'string') {
var W = 'sun,mon,tue,wed,thu,fri,sat'.split(/,/);
var m = /([a-z]+)([\+\-]?\d+)/i.exec(day);
var week = W.indexOf(m[1].toLowerCase());
var no = parseInt(m[2], 10);
if (no < 0) { month++; } // 来月から逆算
if (no > 0) { no--; } // 第一を0と換算
var firstDay = new Date(year, month, 1);
var delta = (7 + week - firstDay.getDay()) % 7;
day = 1 + delta + no*7;
}
return new Date(year, month, day);
}
addEventListener('DOMContentLoaded', function(ev){
var year = new Date().getFullYear();
var element = document.forms['さあ選びたまえ'].elements['今年の第三日曜を'];
for (var m = 0; m < 12; m++) {
var date = makeDate(year, m, 'sun3');
var opt = element.appendChild(document.createElement('option'));
opt.textContent = date.toLocaleDateString();
opt.value = date.toDateString();
}
}, false);
</script>
No.3
- 回答日時:
第三日曜は21から、14日の曜日(日曜=0,月曜=1・・)を引いた日にち
たとえば今月から2年分(24カ月)表示するなら
<script>
var d=new Date();
d.setDate(14);
for(var i=0;i<24;i++){
document.write(d.getFullYear()+"年"+(d.getMonth()+1)+"月"+(21-d.getDay())+"日<br>");
d.setMonth(d.getMonth()+1);
}
</script>
No.2
- 回答日時:
びみょう
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<form id="hoge">
<p>
<select id="fuga"></select>
</form>
<script>
function getNoWeek (date, no, week) {
var d = new Date (date.getFullYear (), date.getMonth (), 1);
return (d.setDate (((week + 7) - d.getDay ()) % 7 + (no * 7 - 6)), d);
}
function getDai3Sunday (date) { return getNoWeek (date, 3, 0); }
function createDateRangeByMonth (date, begin, end) {
var result = [ ];
var d = new Date (date.getFullYear (), date.getMonth (), 1);
d.setMonth (d.getMonth () + begin);
for (var i = begin; i < end; i++)
result.push (new Date (d)),
d.setMonth (d.getMonth () + 1);
return result;
}
function toString (date) { return date.toString (); }
function toStringJp (date) {
function padding (num) {
return (num < 10 ? '0': '') + num;
}
return [
date.getFullYear (),
padding (date.getMonth () + 1),
padding (date.getDate ())
].join ('-');
}
function createOptions (text, value) {
return text.reduce (function (frg, t, i) {
frg.appendChild (new Option (t, value[i]));
return frg;
}, document.createDocumentFragment ());
}
//____________________
var sun = createDateRangeByMonth (new Date, 0, 10).map (getDai3Sunday);
document.querySelector ('#fuga').appendChild (
createOptions (sun.map (toStringJp), sun.map (toString)));
</script>
</body>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptで文字列の特定文字...
-
javaScript textareaの一行あた...
-
Google Apps Script で添付ファ...
-
html javascript リンク先アド...
-
javascriptでテーブルに追加し...
-
GASでundefinedエラーが出ます
-
javascriptで困っています。教...
-
C#で、ContextMenuStripに動的...
-
テキスト改行(split+vbCrLf)に...
-
google apps scriptの終了のさせ方
-
lengthが読めない理由が分からない
-
HTMLの毎月の更新を自動的に行...
-
商品コードを入力で、商品名、...
-
for文を使って変数に値を入れる...
-
コードの簡素化
-
APIを使って埋め込んだグーグル...
-
jsによって検索プルダウン、都...
-
GASのエラー「undefined からプ...
-
翌月を取得するGASが分かりません
-
JavaScriptをgoogle chromeで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#で、ContextMenuStripに動的...
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
ASP.NET MVCでObjectをjsに渡す
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
ASP.NETのコントロールの値をJa...
-
ローカルにあるファイルを検索...
-
シンプルなweb版スタンプラリー...
-
なぜmatchメソッドがエラーにな...
-
APIを使って埋め込んだグーグル...
-
jqGridについて
-
イラレでナンバリングする方法
-
JavaScriptで文字列の特定文字...
-
【javascript】正規表現で括弧...
-
VSCODE[Python]の設定について
-
JAVASCRIPTで万年カレンダーを...
-
javascriptでiframeのURL変更は?
おすすめ情報