LoginSignup
31
17

More than 1 year has passed since last update.

各月の日数について

Last updated at Posted at 2016-12-13

各月の日数は決まっている。例外は閏年で変わる2月だけ。

  • 31日まであるのは1、3、5、7、8、10、12月。
  • 残りの2、4、6、9、11月は2月を除き全て30日まで。
日数
1 31
2 28 or 29
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31

覚え方

「にしむくさむらい(士)」 の語呂合わせで、31日でない月は覚えられる。
2, 4, 6, 9, 11。

JavaScript的には

上記の基本日数を配列に格納しておき(2月は28)、
閏年判定さえできれば、各月が何日までなのかはDateオブジェクト無しで求めることができる。

閏年判定について

  1. 4で割り切れる年である。
  2. 4と100で割り切れるが、400で割り切れない年は例外的に平年とする(4と100と400で全て割り切れる場合は閏年)

例: 2004年、2008年、2012年は4で割り切れるので閏年。
2100年、2200年、2300年は4と100で割り切れるが400で割り切れないので平年。
2400年は4と100で割り切れて、400でも割り切れるので閏年。

var isLeapYear = function(y){
    return y % 4 === 0 && (y % 100 !== 0 || y % 400 === 0);
};

var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var year = 2012,
    month = 1,
    lastDay = days[month - 1]; // 31

if(isLeapYear(year) && month === 2){
    lastDay = 29;
}
31
17
4

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
31
17