package Q6; public class WeekDay { private int numberOfDays; 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 = 0; public static final int TUESDAY = 0; public static final int WEDNESDAY = 0; public static final int THURSDAY = 0; public static final int FRIDAY = 0; public static final int SATURDAY = 0; public String getWeekDay(int day, int month, int year) { switch (daysSinceEpoch(day, month, year) % 7) { case 0: return "Sunday"; case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; default: return "Unknown"; } } 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 x = 0; for (int i = 1; i < month; i++) x += daysInMonth(month); return x + day; } private int daysInMonth(int month) { switch (month) { case 1: return 31; case 2: return 28; case 3: return 31; case 4: return 30; case 5: return 31; case 6: return 30; case 7: return 31; case 8: return 31; case 9: return 30; case 10: return 31; case 11: return 30; case 12: return 31; default: return 0; } } }