Go•day-of-the-year/solution.go
package main
import "strconv"
func dayOfYear(date string) int {
year, _ := strconv.Atoi(date[:4])
month, _ := strconv.Atoi(date[5:7])
day, _ := strconv.Atoi(date[8:])
days := []int{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
ordinal := day
for index := 0; index < month-1; index++ {
ordinal += days[index]
}
if month > 2 && (year%400 == 0 || year%4 == 0 && year%100 != 0) {
ordinal++
}
return ordinal
}
Python•day-of-the-year/solution.py
class Solution:
def dayOfYear(self, date: str) -> int:
year, month, day = map(int, date.split(class="syntax-string">"-")); days = [class="syntax-number">31, class="syntax-number">28, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31]
leap = year % class="syntax-number">400 == class="syntax-number">0 or year % class="syntax-number">4 == class="syntax-number">0 and year % class="syntax-number">100 != class="syntax-number">0
return sum(days[:month - class="syntax-number">1]) + day + int(leap and month > class="syntax-number">2)
TypeScript•day-of-the-year/solution.ts
function dayOfYear(date: string): number {
const [year, month, day] = date.split(class="syntax-string">"-").map(Number); const days = [class="syntax-number">31, class="syntax-number">28, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31, class="syntax-number">30, class="syntax-number">31];
let ordinal = day; for (let index = class="syntax-number">0; index < month - class="syntax-number">1; index += class="syntax-number">1) ordinal += days[index];
const leap = year % class="syntax-number">400 === class="syntax-number">0 || (year % class="syntax-number">4 === class="syntax-number">0 && year % class="syntax-number">100 !== class="syntax-number">0); return ordinal + Number(leap && month > class="syntax-number">2);
}