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) {
|
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;
|
return false;
|
||||||
int max_day = max_day(month, year);
|
int max_day = max_day(month, year);
|
||||||
if (day > max_day)
|
if (day > max_day)
|
||||||
@@ -24,6 +24,34 @@ class Date implements Comparable<Date> {
|
|||||||
return true;
|
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) {
|
public static boolean isLeapYear(int year) {
|
||||||
return year % 4 == 0;
|
return year % 4 == 0;
|
||||||
}
|
}
|
||||||
@@ -87,37 +115,4 @@ class Date implements Comparable<Date> {
|
|||||||
return year;
|
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));
|
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
|
@Test
|
||||||
public void testIsValidDate_Dec31() {
|
public void testIsValidDate_Dec31() {
|
||||||
assertTrue(Date.isValidDate(31, 12, 1999));
|
assertTrue(Date.isValidDate(31, 12, 1999));
|
||||||
@@ -46,23 +56,21 @@ class DateTest {
|
|||||||
assertFalse(Date.isValidDate(1, 0, 2025));
|
assertFalse(Date.isValidDate(1, 0, 2025));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsValidDate_ValidMonth_ValidDay() {
|
||||||
|
assertTrue(Date.isValidDate(10, 10, 2025));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsValidDate_InvalidMonth13() {
|
public void testIsValidDate_InvalidMonth13() {
|
||||||
assertFalse(Date.isValidDate(1, 13, 2025));
|
assertFalse(Date.isValidDate(1, 13, 2025));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testIsValidDate_DayZero() {
|
|
||||||
assertFalse(Date.isValidDate(0, 1, 2025));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------- constructor ----------
|
// ---------- constructor ----------
|
||||||
@Test
|
@Test
|
||||||
public void testConstructor_ValidDate() {
|
public void testConstructor_ValidDate() {
|
||||||
Date d = new Date(15, 6, 2025);
|
assertDoesNotThrow(() -> new Date(15, 6, 2025));
|
||||||
assertEquals(15, d.getDay());
|
|
||||||
assertEquals(6, d.getMonth());
|
|
||||||
assertEquals(2025, d.getYear());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user