Q3 et 4
This commit is contained in:
@@ -16,7 +16,7 @@ class Date implements Comparable<Date> {
|
||||
}
|
||||
|
||||
public static boolean isValidDate(int day, int month, int year) {
|
||||
if (month < 1 || month > 12 || day < 1 || day > 31)
|
||||
if (month < 1 || month > 12 || day < 1)
|
||||
return false;
|
||||
int max_day = max_day(month, year);
|
||||
if (day > max_day)
|
||||
@@ -24,6 +24,34 @@ class Date implements Comparable<Date> {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static int max_day(int month, int year) {
|
||||
int max_verstappen;
|
||||
switch (month) {
|
||||
case 1:
|
||||
case 3:
|
||||
case 5:
|
||||
case 7:
|
||||
case 8:
|
||||
case 10:
|
||||
case 12:
|
||||
max_verstappen = 31;
|
||||
break;
|
||||
case 2: {
|
||||
if (isLeapYear(year)) {
|
||||
max_verstappen = 29;
|
||||
break;
|
||||
} else {
|
||||
max_verstappen = 28;
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
max_verstappen = 30;
|
||||
break;
|
||||
}
|
||||
return max_verstappen;
|
||||
}
|
||||
|
||||
public static boolean isLeapYear(int year) {
|
||||
return year % 4 == 0;
|
||||
}
|
||||
@@ -87,37 +115,4 @@ class Date implements Comparable<Date> {
|
||||
return year;
|
||||
}
|
||||
|
||||
private static int max_day(int month, int year) {
|
||||
int max_verstappen;
|
||||
switch (month) {
|
||||
case 1:
|
||||
case 3:
|
||||
case 5:
|
||||
case 7:
|
||||
case 8:
|
||||
case 10:
|
||||
case 12:
|
||||
max_verstappen = 31;
|
||||
break;
|
||||
case 4:
|
||||
case 6:
|
||||
case 9:
|
||||
case 11:
|
||||
max_verstappen = 30;
|
||||
break;
|
||||
case 2: {
|
||||
if (isLeapYear(year)) {
|
||||
max_verstappen = 29;
|
||||
break;
|
||||
} else {
|
||||
max_verstappen = 28;
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
max_verstappen = 0;
|
||||
break;
|
||||
}
|
||||
return max_verstappen;
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,16 @@ class DateTest {
|
||||
assertFalse(Date.isValidDate(31, 4, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_December32() {
|
||||
assertFalse(Date.isValidDate(32, 4, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_DayZero() {
|
||||
assertFalse(Date.isValidDate(0, 1, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_Dec31() {
|
||||
assertTrue(Date.isValidDate(31, 12, 1999));
|
||||
@@ -46,23 +56,21 @@ class DateTest {
|
||||
assertFalse(Date.isValidDate(1, 0, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_ValidMonth_ValidDay() {
|
||||
assertTrue(Date.isValidDate(10, 10, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_InvalidMonth13() {
|
||||
assertFalse(Date.isValidDate(1, 13, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValidDate_DayZero() {
|
||||
assertFalse(Date.isValidDate(0, 1, 2025));
|
||||
}
|
||||
|
||||
// ---------- constructor ----------
|
||||
@Test
|
||||
public void testConstructor_ValidDate() {
|
||||
Date d = new Date(15, 6, 2025);
|
||||
assertEquals(15, d.getDay());
|
||||
assertEquals(6, d.getMonth());
|
||||
assertEquals(2025, d.getYear());
|
||||
assertDoesNotThrow(() -> new Date(15, 6, 2025));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user