Я хотел получить количество недель и месяцев между двумя диапазонами дат в Java. Например,
Дата начала: 03/01/2012
Дата окончания: 03.05.2012
Поскольку две даты попадают в две разные недели, я хочу, чтобы результат был 2 вместо 0.
Вторая часть проблемы:
Дата начала: 29.02.2012
Дата окончания: 03.01.2012
Количество месяцев между ними должно быть 2.
Я искал в Интернете по этому поводу, и многие люди рекомендовали использовать Joda Date time на Java. Так что я дал ему шанс. Я смог заставить недели работать, но я не уверен, что это правильный путь. Вот что я делаю, чтобы получить продолжительность недели:
DateTime s = new DateTime(Long.parseLong("1330573027000")); // 2012-02-29
DateTime e = new DateTime(Long.parseLong("1331005027000")); // 2012-03-05
Weeks weeks = Weeks.weeksBetween(s, e).plus(1);
Возвращает 1, когда я ожидаю 2, поскольку две даты в разные недели.
В течение нескольких месяцев я пытался следовать одному и тому же, но он возвращает 0, но я хочу, чтобы он возвращал 2, так как две даты в двух разных месяцах.
Может ли кто-нибудь указать мне правильное направление?
Спасибо!
Edit:
Я думаю, у меня есть один способ сделать это, пожалуйста, дайте мне знать, если это выглядит правильно:
DateTime start = new DateTime(Long.parseLong("1330659427000"));
DateTime start = new DateTime(Long.parseLong("1331005027000"));
DateTime finalStart = start.dayOfWeek().withMinimumValue();
DateTime finalEnd = end.dayOfWeek().withMaximumValue();
А затем получите разницу между finalStart и finalEnd. Это выглядит правильно?
Edit2
Обновлено время окончания