Abh*_*gav 9 java date jodatime
我正在编写一个程序,它应该只计算2个给定日期之间的月份并将值返回给程序.例如,如果我必须计算4月1日到6月30日之间的月数(这是一个季度,3个月),我使用以下代码:
DateTime start = new DateTime().withDate(2011, 4, 1);
DateTime end = new DateTime().withDate(2011, 6, 30);
Months mt = Months.monthsBetween(start, end);
int monthDiff = mt.getMonths();
Run Code Online (Sandbox Code Playgroud)
使用这个,我仍然得到"2"作为月数,而实际上是"3"个月.这是我想要的一个例子.我只计算月数(即从结束月份的最后一个月的开始月份的第1天起),我不需要额外的分析,如天,周,小时等.我如何实现这一目标?
任何帮助,将不胜感激.
DateTime start = new DateTime().withDate(2011, 4, 1);
DateTime end = new DateTime().withDate(2011, 6, 30);
Period p = new Period(start, end, PeriodType.months().withDaysRemoved());
int months = p.getMonths() + 1;
Run Code Online (Sandbox Code Playgroud)
您需要该withDaysRemoved()部件以确保在月数中添加一个工作.否则两个日期如2011-04-15和2011-06-14将仍然会得到答案2