LoginSignup
0
0

More than 3 years have passed since last update.

Javascriptで月から日数を求める

Posted at

月を入力にして、その時の日数を求めます(一旦うるう年は考えない)

2月を除くと、8月より前の月は奇数の月が、8月移行の月は偶数の月が31日になるので、

30 + ((month > 7) + month) % 2) - 2 * (month === 2)

として計算できる。

うるう年を考慮する場合

うるう年は、400で割り切れるとき、または、4で割り切れかつ100で割り切れない時なので、

year % 400 === 0 || (year % 4 && year % 100 !== 0 )

となる。

この場合、

const leapYear = year % 400 === 0 || (year % 4 && year % 100 !== 0 )

30 + ((month > 7) + month) % 2) - (month === 2 ? (leapYear ? 1 : 2 ): 0)

となる。

もっとシンプルに書きたい。

月ごとの日数↓

日数
1 31
2 28 または 29
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
0
0
1

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
0
0