如何跨年计算 两日期之间相隔的周数 with java8 time API
如2015-12-01到2016-01-15隔了5周
if (oneday.isAfter(sratDate) && oneday.isBefore(endDate)) {
TemporalField weekFields =WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear(); int startWeek = sratDate.get(weekFields);
int oneWeek = oneday.get(weekFields);
System.out.print(startWeek - oneWeek);
}
回答:
===============================2016年9月版 分割线========================================
之前版本的我太simple了...最近再去研究了一下Java8的新时间API,发现更有简单的方式去处理
LocalDate localDate1 = LocalDate.parse("2015-12-01");LocalDate localDate2 = LocalDate.parse("2016-01-15");
System.out.println(localDate1.until(localDate2, ChronoUnit.WEEKS));
这样就完了...用Temporal.unitl
方法,这个方法就是计算两个Temporal
之间TemporalUnit
单位类型的距离的,LocalDate
也是Temporal
的一个实现类嘛,所以可以调用的,单位的话ChronoUnit
是一个枚举,里面有很多可以选择的单位,可以计算其他时间距离
(p.s : Java8的时间API,抽象了时间的概念,用Temporal
和TemporalAccessor
来定义了时间的基石,划分抽象了和基石相关的时间关系,时间单位TemporalUnit
,时间字段TemporalField
,时间量TemporalAmount
,把这些抽象接口理顺了...会发现用Java8时间API几乎可以满足你任何时间计算,以上是个人理解,仅供参考)
==============================2015年11月版 分割线========================================
我看周数在java8的新API里用的不太多啊,基本都是什么算年,年月,算天的,下面有方法可以计算两个LocalDate之间的年数,月数和天数的,看能否对你有些帮助
这个Period对象里封装了两个LocalDate之间的一些时间数据,这个结果表示,当前这两个时间相差1个月零14天的
以上是 如何跨年计算 两日期之间相隔的周数 with java8 time API 的全部内容, 来源链接: utcz.com/p/169701.html