2015-09-25 4 views
0

Я новичок в java. У меня две даты: Пт 25 сентября 00:00:00 IST 2015 и Пт 23 окт 00:00 IST 2015. Я пытаюсь получить разницу в неделе, поэтому выход будет: -Как разделить недели между двумя датами

Sep 25-Oct 1 2015, Oct 2-8 2015, Oct 9-15 2015, Oct 16-21 2015, Oct 22-23 2015 

Пожалуйста, помогите! Я не хочу, чтобы использовать время Joda

ответ

1

Acording к http://www.leveluplunch.com/java/examples/number-of-weeks-between-two-dates/ В Java 8:

public void weeks_between_two_dates_in_java_with_java8() { 

    LocalDate startDate = LocalDate.of(2005, Month.JANUARY, 1); 
    LocalDate endDate = LocalDate.of(2006, Month.JANUARY, 1); 

    long weeksInYear = ChronoUnit.WEEKS.between(startDate, endDate); 

    assertEquals(52, weeksInYear); 
} 

Java 8 имеет довольно хороший API для даты & времени, и, как вы можете увидеть http://www.joda.org/joda-time/

Joda-Time - фактическая стандартная библиотека даты и времени для Java. Начиная с Java SE 8, пользователям предлагается перейти на java.time (JSR-310).

+0

@d_k Спасибо. можем ли мы иметь этот формат? sep 25-Oct 1 2015, Oct 2-8 2015, Oct 9-15 2015, Oct 16-21 2015, 22-23 октября 2015 г. –

+0

Если это выходные данные - да, но вы должны переформатировать результат в желаемый формат to hve – dklos

+0

Благодарим вас за это –

0

В этом thread вы можете увидеть, как получить разницу во времени.

Так на основе нити я сказал вам, вы можете преобразовать разницу по неделям таким образом:

long diff = d2.getTime() - d1.getTime(); 
int weeks = diff/(7 * 24 * 60 * 60 * 1000); 

, которые соответствуют 7 дней за 24 часов за 60 минут за 60 секунд на 1000 милисекунд.

+0

Это можно сделать более шикарно. Это решение мало читаемо. – dklos

+0

@d__k Я не думаю, что это решение менее изящно. Он не зависит от какой-либо версии Java и зависимости от библиотеки. Он прост и может быть хорошо инкапсулирован и, таким образом, использован элегантным способом. – malaguna

+0

Спасибо. можем ли мы иметь этот формат? sep 25-Oct 1 2015, Oct 2-8 2015, 9-15 октября 2015 г., 16-21 октября 2015 г., 22-23 октября 2015 г. –

Смежные вопросы