gpt4 book ai didi

java - 从 Range 列表中提取间隙

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:46 24 4
gpt4 key购买 nike

我有一个 Range<Date> 的列表基于 Guava 库,它们从不重叠。

  • 2001-01-10 2001-01-15
  • 2001-01-20 2001-01-22
  • 2001-01-28 2001-01-29

然后,我有一个引用范围:

  • 2001-01-01 2001-01-31

我想找到列表和引用范围之间的所有排他性差距:

  • 2001-01-01 2001-01-10
  • 2001-01-15 2001-01-20
  • 2001-01-22 2001-01-28
  • 2001-01-29 2001-01-31

对于这个例子,Date 对象很简单,但实际上它们的格式可能会因 ChronoUnit 的不同而有所不同。

是否有无需过多编码即可获得此结果的正确方法?

最佳答案

我的方法是这样的

RangeSet<Date> rangeSet = TreeRangeSet.create();
rangeSet.add(referenceRange);
for (Range<Date> range : rangesToRemove) {
rangeSet.remove(range);
}
for (Range<Date> exclusiveRange : rangeSet.asRanges()) {
...
}

如果您正确地操作范围边界,您应该以您想要的格式获取它们。

关于java - 从 Range<Date> 列表中提取间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499860/

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