Commit 61a3744
Changed files (1)
src
Q6
src/Q6/WeekDay.java
@@ -24,6 +24,74 @@ public class WeekDay {
public static final int SATURDAY = 0;
public String getWeekDay(int day, int month, int year) {
- return "";
+ 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;
+ }
}
}