回答:
どうですか:
LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();
dayOfMonth()
LocalDate.Property
「月の日」フィールドを表すa を返しますLocalDate
。
たまたま、この特定のタスクに推奨するためのwithMaximumValue()
方法も文書化されています。
この操作は、月の長さが異なるため、月の最終日にLocalDateを取得するのに役立ちます。
LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
dt.with(TemporalAdjusters.lastDayOfMonth())
別の簡単な方法はこれです:
//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結果です。
誰かがint
代わりにJodaTimeを使用して実際の最終日を必要とする場合、これを行うことができます:
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クラス。
DateTime
タイプでも機能します:)