[java] JodaTime으로 특정 달의 마지막 날짜를 얻는 방법은 무엇입니까?

org.joda.time.LocalDate한 달 의 첫 번째 날짜 와 마지막 날짜를 가져와야합니다 . 첫 번째를 얻는 것은 사소한 일이지만 마지막을 얻는 것은 달의 길이가 다르고 2 월의 길이는 해에 따라 달라지기 때문에 약간의 논리가 필요한 것 같습니다. JodaTime에 이미 내장 된 메커니즘이 있습니까 아니면 직접 구현해야합니까?



답변

어때 :

LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();

dayOfMonth()LocalDate.Property원래를 알고있는 방식으로 “일”필드를 나타내는를 반환합니다 LocalDate.

withMaximumValue()방법은 이 특정 작업에 권장하도록 문서화 되어 있습니다.

이 작업은 월 길이가 다양하므로 해당 월의 마지막 날에 LocalDate를 얻는 데 유용합니다.

LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();

답변

또 다른 간단한 방법은 다음과 같습니다.

//Set the Date in First of the next Month:
answer = new DateTime(year,month+1,1,0,0,0);
//Now take away one day and now you have the last day in the month correctly
answer = answer.minusDays(1);


답변

오래된 질문이지만 이것을 찾고 있었을 때 최고의 Google 결과입니다.

누군가가 intJodaTime을 사용하여 실제 마지막 날을 필요로하는 경우 다음을 수행 할 수 있습니다.

public static final int JANUARY = 1;

public static final int DECEMBER = 12;

public static final int FIRST_OF_THE_MONTH = 1;

public final int getLastDayOfMonth(final int month, final int year) {
    int lastDay = 0;

    if ((month >= JANUARY) && (month <= DECEMBER)) {
        LocalDate aDate = new LocalDate(year, month, FIRST_OF_THE_MONTH);

        lastDay = aDate.dayOfMonth().getMaximumValue();
    }

    return lastDay;
}


답변

JodaTime을 사용하여 다음을 수행 할 수 있습니다.

    public static final Integer CURRENT_YEAR = DateTime.now (). getYear ();

    public static final Integer CURRENT_MONTH = DateTime.now (). getMonthOfYear ();

    public static final Integer LAST_DAY_OF_CURRENT_MONTH = DateTime.now ()
            .dayOfMonth (). getMaximumValue ();

    public static final Integer LAST_HOUR_OF_CURRENT_DAY = DateTime.now ()
            .hourOfDay (). getMaximumValue ();

    public static final Integer LAST_MINUTE_OF_CURRENT_HOUR = DateTime.now (). minuteOfHour (). getMaximumValue ();

    public static final Integer LAST_SECOND_OF_CURRENT_MINUTE = DateTime.now (). secondOfMinute (). getMaximumValue ();


    public static DateTime getLastDateOfMonth () {
        새로운 DateTime (CURRENT_YEAR, CURRENT_MONTH,
                LAST_DAY_OF_CURRENT_MONTH, LAST_HOUR_OF_CURRENT_DAY,
                LAST_MINUTE_OF_CURRENT_HOUR, LAST_SECOND_OF_CURRENT_MINUTE);
    }

github에 대한 내 작은 요점에서 설명하는 것처럼 유용한 기능이 많은 JodaTime 및 java.util.Date Util 클래스.


답변