gpt4 book ai didi

datetime - 试图找到一种方法来计算与 java8 重叠的 Jodatime 瞬间

转载 作者:行者123 更新时间:2023-12-01 03:13:09 24 4
gpt4 key购买 nike

我目前正在考虑从 JodaTime 迁移到 java8 api。

大多数都可以,但有一件事让我望而却步。我需要计算一个人的工作类次有多少是在“办公时间”内。

使用 JodaTime,我利用 Instant 类来执行计算并取得巨大成功:

DateTime in = new DateTime(inTime);
DateTime out = new DateTime(outTime);

Interval officeHours = new Interval(in.withTime(whstart.getHours(),
whstart.getMinutes(), 0, 0),
in.withTime(whend.getHours(), whend.getMinutes(), 0, 0));

Interval shift = new Interval(in, out);
Interval overlap = officeHours.overlap(shift);

officeHoursSeconds = overlap != null ?
overlap.toDuration().getStandardSeconds() : 0;

但是,由于 java8 中似乎缺少 Interval 类,因此我对如何最好地将此逻辑移至 java8 api 感到有些茫然。

我当然可以继续使用 Jodatime,但由于它已停产,我想尝试将其完全删除。

指针非常感谢。

最佳答案

Joda级Interval没有被 Java-8 超越 .我看主要是三种方式:

a) 编写您自己的间隔类(但是查看源代码会有所帮助)

b) 使用我的库 Time4J和类(class) MomentInterval与方法 findIntersection(...)这产生了一个可选的相交间隔。到 Java-8 类的转换方法,如 moment.toTemporalAccessor()屈服 java.time.Instant存在。

c) 使用库 Threeten-Extra其中有一个同名的类 Interval及其方法 intersection(...) .在这里,您必须首先检查交集是否存在,否则将引发异常。

关于datetime - 试图找到一种方法来计算与 java8 重叠的 Jodatime 瞬间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50632551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com