[英]Joda Time - difference in “complete” months between two dates
如何計算兩個日期之間有“喬達”時間的“滿”月數,減去不完整的月數? 例如我有兩個日期
LocalDate from = new LocalDate (2018, 9, 10);
LocalDate to = new LocalDate (2018, 11, 15);
在這些日期之間,有一個“完整”月份-十月從1到31。所以我想通過刪除“不完整”月份-九月和十一月來獲得數字“ 1”
我需要這樣的東西
System.out.println(Months.monthsBetween(from, to).getMonths()); // returns 2
System.out.println(Months.**completed**MonthsBetween(from, to).getMonths()); // returns 1
UPD 1.我可以實現以下目標:
LocalDate from = new LocalDate (2018, 9, 10);
LocalDate to = new LocalDate (2018, 11, 15);
if (to.getDayOfMonth() != 1)
from = from.plusMonths(1).withDayOfMonth(1);
if (to.getDayOfMonth() != 1)
to = to.withDayOfMonth(1);
System.out.println(Months.monthsBetween(from, to).getMonths());
但也許有一種現成的方法?
這是否意味着您只是想從每個間隔中刪除一個月並在它們之間進行區別?
LocalDate fromMinusOne = from.minus(Months.ONE);
LocalDate toMinusOne = to.minus(Months.ONE);
System.out.println(Months.monthsBetween(fromMinusOne, toMinusOne).getMonths());
Joda Time
提供了提取兩個日期之間的days
, months
和years
方法。 創建兩個日期的實例。
DateTime startDate = DateTime.parse("1970-01-01", DateTimeFormat.forPattern("yyyy-MM-dd"))
DateTime endDate = DateTime.parse("2015-02-25", DateTimeFormat.forPattern("yyyy-MM-dd"))
您也可以在LocalDate
中代替DateTime
創建日期實例。
現在,您可以輕松找到上述兩個日期之間的完整月份,
int months = Months.monthsBetween(startDate.withDayOfMonth(1), endDate.withDayOfMonth(1)).getMonths()
好幾天,
int days = Days.daysBetween(startDate, endDate).getDays()
兩個月之間的日期差
多年,
int years = Years.yearsBetween(startDate, endDate).getYears();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.