如何使用Joda-Time获取给定月份内的天数?

Man*_*áoz 55 java datetime jodatime

30 days hath September,
   April, June and November,
 All the rest have 31,
   Excepting February alone
(And that has 28 days clear,
   With 29 in each leap year).
Run Code Online (Sandbox Code Playgroud)

我能否以字母顺序获取此信息?(当然,我不是说这首诗)

Eri*_*son 98

如果你有一个DateTime代表月份值的对象,那么它非常简单.您dayOfMonth从该DateTime对象获取属性并获取该属性的最大值.这是一个示例函数:

public static int daysOfMonth(int year, int month) {
  DateTime dateTime = new DateTime(year, month, 14, 12, 0, 0, 000);
  return dateTime.dayOfMonth().getMaximumValue();
}
Run Code Online (Sandbox Code Playgroud)

  • @ChrisGerken:也许你的月份是零索引的?对于JODA,月份应为1-12.如果您在11月使用10,那么JODA将看到10月并返回31. (9认同)
  • 几乎所有与日期相关的错误都是因为 JODA 不是零索引。很难记住! (2认同)