getMonthGivenDayOfYear method

int getMonthGivenDayOfYear(
  1. int days,
  2. int year
)

Implementation

int getMonthGivenDayOfYear(int days, int year) {
  assert(days > 0);
  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 (leapYear(year) == true)
    monthLength[1] = 29;
  else
    monthLength[1] = 28;

  for (var i = 0; i < monthLength.length + 1; i++) {
    var daysInMonthLength = monthLength[i];
    days -= daysInMonthLength;
    if (days <= 0) return (i + 1);
  }

  return 12;
}