Commit f8c9c03

mo <mo.khan@gmail.com>
2019-07-13 21:07:24
debug assignment 6
1 parent 61a3744
src/Q6/WeekDay.java
@@ -1,5 +1,7 @@
 package Q6;
 
+import java.util.*;
+
 public class WeekDay {
   private int numberOfDays;
   public static final int JANUARY = 0;
@@ -24,7 +26,10 @@ public class WeekDay {
   public static final int SATURDAY = 0;
 
   public String getWeekDay(int day, int month, int year) {
-    switch (daysSinceEpoch(day, month, year) % 7) {
+    int totalDaysSinceEpoch = daysSinceEpoch(day, month, year);
+    this.puts("days since epoch: %d", totalDaysSinceEpoch);
+    this.puts("weekday: %d", totalDaysSinceEpoch % 7);
+    switch (totalDaysSinceEpoch % 7) {
       case 0:
         return "Sunday";
       case 1:
@@ -46,10 +51,13 @@ public class WeekDay {
 
   private int daysSinceEpoch(int day, int month, int year) {
     int days = (year - 1900) * 365;
+    this.puts("days: %d", days);
     days += (year - 1900) / 4;
-    if (isLeapYear(year) && (month == 1 || month == 2))
-      days -= 1;
+    this.puts("days: %d", days);
+    if (isLeapYear(year) && (month == 1 || month == 2)) days -= 1;
+    this.puts("days: %d", days);
     days += daysThisYearUpTo(day, month);
+    this.puts("days: %d", days);
     return days;
   }
 
@@ -59,8 +67,10 @@ public class WeekDay {
 
   private int daysThisYearUpTo(int day, int month) {
     int x = 0;
-    for (int i = 1; i < month; i++)
-      x += daysInMonth(month);
+    for (int i = 1; i < month; i++) {
+      this.puts("days in month: %d is %d", month, daysInMonth(month));
+      x += daysInMonth(i);
+    }
     return x + day;
   }
 
@@ -94,4 +104,23 @@ public class WeekDay {
         return 0;
     }
   }
+
+  private void puts(String format, Object... args) {
+    System.out.println(String.format(format, args));
+  }
+
+  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));
+  }
 }
src/Q6/WeekDayTest.java
@@ -18,7 +18,11 @@ public class WeekDayTest extends TestCase {
     return new TestSuite(WeekDayTest.class);
   }
 
-  public void test_getWeekDay() {
+  public void test_getWeekDay_1900_03_01() {
+    assertEquals("Thursday", subject.getWeekDay(1, 3, 1900));
+  }
+
+  public void test_getWeekDay_2019_07_13() {
     assertEquals("Saturday", subject.getWeekDay(13, 7, 2019));
   }
 }
src/App.java
@@ -29,6 +29,9 @@ public class App {
         case 5:
           Q5.Village.main(args);
           break;
+        case 6:
+          Q6.WeekDay.main(args);
+          break;
         default:
           System.out.println("Bye");
           System.exit(0);