2015-09-25 277 views
0

我是新來的java。我有兩個日期如週五9月25日00:00:00 IST 2015週五10月23日00: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 

請幫幫我!我並不想使用喬達時間

回答

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 2015年10月25日,2015年10月2日至8日,2015年10月9日至15日,2015年10月16日至21日,2015年10月22日至23日 –

+0

如果這是輸出數據 - 是的,但您必須將結果重新格式化爲所需格式hve – dklos

+0

謝謝你 –

0

在此thread中,您可以看到如何獲取日期差異。

因此,基於線程我告訴你,你可以在幾周變換的區別是這樣的:

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

每1000毫秒對應〜7天每24小時每60分鐘的60秒。

+0

它可以做得更加優雅的方式。這種解決方案不太可讀。 – dklos

+0

@d__k我不認爲這個解決方案不太優雅。它不依賴於任何Java版本或庫依賴。它非常簡單,可以很好地封裝,因此可以以優雅的方式使用。 – malaguna

+0

謝謝。我們可以有這種格式嗎? sep 2015年10月25日,2015年10月2日至8日,2015年10月9日至15日,2015年10月16日至21日,2015年10月22日至23日 –