2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

特定の曜日だけ書き出す

Last updated at Posted at 2018-11-30

#:date: javascriptで、任意の月の特定曜日を書き出す

練習用の投稿になります。

:cat: 取得方法の概要
(1) 現在の日付から月を取得
(2) 月の日数を取得
(3) 日数の中で、条件に該当する日だけを書き出す

##(1) 現在の日付から、今月が何月であるかを取得する

:small_orange_diamond: 現在の日付を取得

var today = new Date();

:small_orange_diamond: 現在の日付から、西暦の取得

var y = today.getFullYear();

:small_orange_diamond: 現在の日付から、月の取得
実行結果は0から数えた番号(1月であれば0、2月であれば1)で返されるので、
月の数字に直すには、+ 1をします。

var m = today.getMonth();
var mm = m + 1;

##(2) 一か月の日数を取得
:small_orange_diamond: 取得した月を利用して、月間日数を取得
new Date(西暦,月,0) とすることで、その月の最終日を取得する事ができます。
取得した最終日から getDate() 関数で日だけを取り出します。

var d = new Date(y, mm, 0).getDate();

##(3) 特定の曜日の日だけをピックアップ
:small_orange_diamond: 取得した初日~最大日数までの中で、該当する日をピックアップ
1日から始め、最終日まで処理を繰り返していきます。

var i;
for (i = 1; i <= d; i++) {
  // [i]日が一週間の中で何番目かを取得。実行結果は0から数えた番号で返されます。
  var w = new Date(y, m, [i]).getDay();
  
  // 取得した w はそのままでは曜日の文字にはならないので、配列を利用して日本語を書き出します
  var ww = ['', '', '', '', '', '', ''];

  // [i]日の曜日が、日曜と土曜の時だけ書き出す
  if (w === 0 || w === 6) {
    window.console.log(y + '' + mm + '' + [i] + '' + (ww[w]) + '曜日');
  }
}

##:pencil: 実行結果

2018年11月3日土曜日
2018年11月4日日曜日
2018年11月10日土曜日
2018年11月11日日曜日
2018年11月17日土曜日
2018年11月18日日曜日
2018年11月24日土曜日
2018年11月25日日曜日

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?