daysInMonth method

int daysInMonth(
  1. int monthNum,
  2. int year
)

获取指定年月的天数

monthNum 月份(1-12) year 年份

返回结果: 返回指定年月的天数,如2月闰年返回29,平年返回28。

示例:

print(DateTime.now().daysInMonth(2, 2024)); // 29
print(DateTime.now().daysInMonth(2, 2023)); // 28
print(DateTime.now().daysInMonth(7, 2023)); // 31

Implementation

int daysInMonth(int monthNum, int year) {
  List<int> monthLength = List.filled(12, 0);

  monthLength[0] = 31;
  monthLength[2] = 31;
  monthLength[4] = 31;
  monthLength[6] = 31;
  monthLength[7] = 31;
  monthLength[9] = 31;
  monthLength[11] = 31;
  monthLength[3] = 30;
  monthLength[8] = 30;
  monthLength[5] = 30;
  monthLength[10] = 30;

  if (isLeapYear(year)) {
    monthLength[1] = 29;
  } else {
    monthLength[1] = 28;
  }

  return monthLength[monthNum - 1];
}