Drill

ProblemsGo › dates

How many days in this month

easydatesMathArraysGo

A date picker greys out the days that do not exist in the month being shown.

daysInMonth(year: int, month: int) → int

Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

func daysInMonth(year int, month int) int {
	
}

Worked examples

CallResult
daysInMonth(2024, 2)29
daysInMonth(2023, 2)28
daysInMonth(1900, 2)28
daysInMonth(2024, 4)30

Hint

A lookup table for the eleven easy months, and one branch for February.

Reference solution in Go
func daysInMonth(year int, month int) int {
	if month < 1 || month > 12 {
		return 0
	}
	table := []int{31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
	if month != 2 {
		return table[month-1]
	}
	leap := year%400 == 0 || (year%4 == 0 && year%100 != 0)
	if leap {
		return 29
	}
	return 28
}

The same problem in another language

More dates problems in Go