BAEL-6597: How to get the last Day of the Month in Java (#14191)
This commit is contained in:
parent
e2976f0686
commit
8e6bdc0205
@ -0,0 +1,32 @@
|
||||
package com.baeldung.lastdaymonth;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.YearMonth;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.Calendar;
|
||||
|
||||
public class LastDayOfMonth {
|
||||
|
||||
static int getLastDayOfMonthUsingCalendar(int month) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(Calendar.MONTH, month);
|
||||
return cal.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||
}
|
||||
|
||||
static int getLastDayOfMonthUsingTemporalAdjusters(LocalDate date) {
|
||||
return date.with(TemporalAdjusters.lastDayOfMonth())
|
||||
.getDayOfMonth();
|
||||
}
|
||||
|
||||
static int getLastDayOfMonthUsingYearMonth(YearMonth date) {
|
||||
return date.atEndOfMonth()
|
||||
.getDayOfMonth();
|
||||
}
|
||||
|
||||
static int getLastDayOfMonthUsingJodaTime(org.joda.time.LocalDate date) {
|
||||
return date.dayOfMonth()
|
||||
.withMaximumValue()
|
||||
.getDayOfMonth();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.baeldung.lastdaymonth;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.YearMonth;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class LastDayOfMonthUnitTest {
|
||||
|
||||
@Test
|
||||
void givenMonth_whenUsingCalendar_thenReturnLastDay() {
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingCalendar(0));
|
||||
assertEquals(30, LastDayOfMonth.getLastDayOfMonthUsingCalendar(3));
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingCalendar(9));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMonth_whenUsingTemporalAdjusters_thenReturnLastDay() {
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingTemporalAdjusters(LocalDate.of(2023, 1, 1)));
|
||||
assertEquals(30, LastDayOfMonth.getLastDayOfMonthUsingTemporalAdjusters(LocalDate.of(2023, 4, 1)));
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingTemporalAdjusters(LocalDate.of(2023, 10, 1)));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMonth_whenUsingYearMonth_thenReturnLastDay() {
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingYearMonth(YearMonth.of(2023, 1)));
|
||||
assertEquals(30, LastDayOfMonth.getLastDayOfMonthUsingYearMonth(YearMonth.of(2023, 4)));
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingYearMonth(YearMonth.of(2023, 10)));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMonth_whenUsingJodaTime_thenReturnLastDay() {
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingJodaTime(org.joda.time.LocalDate.parse("2023-1-1")));
|
||||
assertEquals(30, LastDayOfMonth.getLastDayOfMonthUsingJodaTime(org.joda.time.LocalDate.parse("2023-4-1")));
|
||||
assertEquals(31, LastDayOfMonth.getLastDayOfMonthUsingJodaTime(org.joda.time.LocalDate.parse("2023-10-1")));
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user