import java.time.LocalDate;
import java.time.DayOfWeek;
/**
This program determines the day of the week for January 1st of a given year.
Approach:
---------
Java's modern date/time API (java.time) provides:
- LocalDate.of(year, month, day) : constructs a calendar date
- getDayOfWeek() : returns an enum DayOfWeek
DayOfWeek values:
MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
FRIDAY, SATURDAY, SUNDAY
This avoids manual calendar arithmetic and uses efficient built‑in routines.
*/
public class Main {
// Convert DayOfWeek enum to a readable string (e.g., "THURSDAY" -> "Thursday")
static String weekdayName(DayOfWeek dow) {
String s = dow.toString(); // Enum name in uppercase
return s.substring(0, 1) + s.substring(1).toLowerCase();
}
// Compute weekday of January 1st for a given year
static String jan1Weekday(int year) {
LocalDate date = LocalDate.of(year, 1, 1); // January 1st of given year
DayOfWeek dow = date.getDayOfWeek(); // Built‑in weekday computation
return weekdayName(dow);
}
public static void main(String[] args) {
int year = 2026;
String result = jan1Weekday(year);
System.out.println("January 1st, " + year + " falls on a " + result + ".");
}
}
/*
run:
January 1st, 2026 falls on a Thursday.
*/