package Q6; import java.util.*; public class WeekDay { public static final int JANUARY = 0; public static final int FEBRUARY = 0; public static final int MARCH = 0; public static final int APRIL = 0; public static final int MAY = 0; public static final int JUNE = 0; public static final int JULY = 0; public static final int AUGUST = 0; public static final int SEPTEMBER = 0; public static final int OCTOBER = 0; public static final int NOVEMBER = 0; public static final int DECEMBER = 0; public static final int SUNDAY = 0; public static final int MONDAY = 1; public static final int TUESDAY = 2; public static final int WEDNESDAY = 3; public static final int THURSDAY = 4; public static final int FRIDAY = 5; public static final int SATURDAY = 6; private static final String[] DAYS = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; private static final int[] MONTHS = new int[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; public String getWeekDay(int day, int month, int year) { return DAYS[daysSinceEpoch(day, month, year) % 7]; } private int daysSinceEpoch(int day, int month, int year) { int days = (year - 1900) * 365; days += (year - 1900) / 4; if (isLeapYear(year) && (month == 1 || month == 2)) days -= 1; days += daysThisYearUpTo(day, month); return days; } private boolean isLeapYear(int year) { return year % 4 == 0; } private int daysThisYearUpTo(int day, int month) { int days = 0; for (int i = 1; i < month; i++) days += daysInMonth(i); return days + day; } private int daysInMonth(int month) { return MONTHS[month - 1]; } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter year:"); int year = in.nextInt(); System.out.println("Enter month:"); int month = in.nextInt(); System.out.println("Enter day:"); int day = in.nextInt(); System.out.println(new WeekDay().getWeekDay(day, month, year)); } }