2015-09-25 231 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日 –