import java.time.LocalDate
import java.time.DayOfWeek
/*
This program determines the day of the week for January 1st of a given year.
Approach:
---------
Kotlin uses the Java Time API for date/time handling:
- LocalDate.of(year, month, day) : constructs a calendar date
- date.dayOfWeek : returns a DayOfWeek enum
DayOfWeek values:
MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
FRIDAY, SATURDAY, SUNDAY
This avoids manual calendar arithmetic and uses efficient built‑in routines.
*/
// Convert DayOfWeek enum to a readable string
fun weekdayName(dow: DayOfWeek): String {
val raw: String = dow.toString() // "THURSDAY"
return raw.lowercase().replaceFirstChar { it.uppercase() } // "Thursday"
}
// Compute weekday of January 1st for a given year
fun jan1Weekday(year: Int): String {
val dateValue: LocalDate = LocalDate.of(year, 1, 1) // January 1st of given year
val dow: DayOfWeek = dateValue.dayOfWeek // Built‑in weekday computation
return weekdayName(dow)
}
fun main() {
val year: Int = 2026
val result: String = jan1Weekday(year)
println("January 1st, $year falls on a $result.")
}
/*
run:
January 1st, 2026 falls on a Thursday.
*/