func isLeapYear(_ year: Int) -> Bool {
return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))
}
func getDayOfYear(year: Int, month: Int, day: Int) -> Int {
// cumulative days at the end of each month (non-leap year)
let days = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
if isLeapYear(year) && month > 2 {
return days[month - 1] + day + 1
} else {
return days[month - 1] + day
}
}
let dayOfYear = getDayOfYear(year: 2023, month: 5, day: 15)
print(dayOfYear)
/*
run:
135
*/