Joda Time Manipulation获得第15个月和最后一天

时间:2015-03-31 23:07:09

标签: java datetime jodatime

如何在Joda时间内获得本月的第15天和最后一天?

这是代码:

DateTime initDate = new DateTime(2015,1,31,0,0);

for(int i = 0; i > 4; i++){
  initDate = initDate.plusDays(15);

   System.out.println(initDate.toString("yyyy-MM-dd");
}

我只想让结果像这样:

2015-2-15
2015-2-28
2015-3-15
2015-3-30

3 个答案:

答案 0 :(得分:2)

for(int i = 0; i < 4; i++){ 
            initDate = initDate.plusMonths(1);
            initDate = initDate.withDayOfMonth(15);
            System.out.println(initDate.toString("yyyy-MM-dd"));
            System.out.println(initDate.dayOfMonth().withMaximumValue().toString("yyyy-MM-dd"));
        }

那样的东西?

答案 1 :(得分:0)

循环很好,但不是添加天数,而是可以直接添加一个月(查看http://joda-time.sourceforge.net/key_period.htmlhttp://joda-time.sourceforge.net/apidocs/org/joda/time/Months.html)并且要获得本月的最后一天,您可以使用

yourcurrentDate.dayOfMonth().withMaximumValue()

答案 2 :(得分:0)

您无法通过添加固定天数来获取该月的最后一天,因为所有月份的天数都不相同。

相反,请使用你的循环

for (each month) {
   set the month appropriately (set not add)
   get the 15th day of this month (set not add)
   print the 15th day
   set the next month
   set the 1st day of the "next" month
   subtract a day
   print the "last" day
}