dayOfYear function

int dayOfYear(
  1. int month,
  2. int day,
  3. bool leapYear
)

Given a month and day number, return the day of the year, all one-based.

For example,

  • January 2nd (1, 2) -> 2.
  • February 5th (2, 5) -> 36.
  • March 1st of a non-leap year (3, 1) -> 60.

Implementation

int dayOfYear(int month, int day, bool leapYear) {
  if (month == 1) return day;
  if (month == 2) return day + 31;
  return ordinalDayFromMarchFirst(month, day) + 59 + (leapYear ? 1 : 0);
}