如何在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
答案 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.html和 http://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
}