Commit 6d8f6b8
Changed files (2)
src
src/Q6/WeekDay.java
@@ -8,6 +8,7 @@ public class WeekDay {
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) {
+ this.ensureValidDate(year, month, day);
return DAYS[daysSinceEpoch(day, month, year) % 7];
}
@@ -32,6 +33,10 @@ public class WeekDay {
return MONTHS[month - 1];
}
+ private void ensureValidDate(int year, int month, int day) {
+ if (day > MONTHS[month - 1]) throw new IllegalArgumentException();
+ }
+
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
src/Q6/WeekDayTest.java
@@ -63,4 +63,14 @@ public class WeekDayTest extends TestCase {
public void test_getWeekDay_2100_01_31() {
assertEquals("Sunday", subject.getWeekDay(31, 1, 2100));
}
+
+ public void test_getWeekDay_invalid_day() {
+ boolean raised = false;
+ try {
+ subject.getWeekDay(32, 1, 2100);
+ } catch (IllegalArgumentException error) {
+ raised = true;
+ }
+ assertTrue(raised);
+ }
}