getDaysForMonth method

int getDaysForMonth(
  1. int month,
  2. int year
)

Implementation

int getDaysForMonth(int month, int year) {
  // month is 0-based

  if (month == 1) {
    bool is29Feb = false;

    if (year < 1582) {
      is29Feb = (year < 1 ? year + 1 : year) % 4 == 0;
    } else if (year > 1582) {
      is29Feb = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
    }

    return is29Feb ? 29 : 28;
  }

  if (month == 3 || month == 5 || month == 8 || month == 10) {
    return 30;
  } else {
    return 31;
  }
}