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で質問しましょう!
似たような質問が見つかりました
- 浮気・不倫(結婚) 付き合って3年たつ10歳年下の彼がいます。 毎日たわいもないLINEをどちらからともなく、この付き合 3 2022/09/11 21:53
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- 求人情報・採用情報 気になる求人があったのですが、、、 年間休日:105日 休日:日、祝日 土曜日の出勤が月に2~3日 1 2022/12/03 10:55
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- 派遣社員・契約社員 派遣仕事開始までの期間。 5月9日月曜日、派遣会社の紹介された仕事の職場見学をしてきました。3人応募 2 2022/05/09 20:48
- Excel(エクセル) 条件付き書式で文字入力 6 2022/08/29 10:40
- 地球科学 太陽系の惑星と週(日曜日~土曜日)、月(1月~12月)に付いての質問です。 太陽系には、8つの惑星が 3 2022/10/08 22:32
- Amazon Amazonの商品到着の日時がコロコロ変動… 皆さん、Amazonで商品を注文しても 「お届け日」が 4 2023/06/04 13:07
- その他(恋愛相談) 日程打診してきたのに、その日に自分の予定入れる人 6 2022/06/07 00:40
- カップル・彼氏・彼女 大学生カップルのデート予算について 大学3年女です。同じく大学生の彼氏がいて、共同財布の月の予算を決 3 2022/05/29 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
ASP.NET MVCでObjectをjsに渡す
-
javaScriptのコードの修正をお...
-
ASP.NETのコントロールの値をJa...
-
C#OpenCv V4にのエラーに関する...
-
JavaScriptでテーブル内?に矢...
-
「続きを読む」ボタンを押すと...
-
アルファベットABCD…をスマート...
-
VSCODE[Python]の設定について
-
javascriptでテーブルに追加し...
-
GASでGoogleフォームの自動返信...
-
javascriptでiframeのURL変更は?
-
メールフォームの日付入力フォ...
-
cgiでポーリングして取得したデ...
-
html javascript リンク先アド...
-
jqGridについて
-
イベントが初めの一回しか起き...
-
setTimeoutによる繰り返しが途...
-
【乱数】任意の範囲、固定個数...
-
ジェネレーターの作り方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報