【问题标题】:Math.max(...) for JodaTimeJodaTime 的 Math.max(...)
【发布时间】:2016-04-25 22:27:31
【问题描述】:

我有两个 JodaTime 对象,我想要这样的方法

// Return the latest of the two DateTimes
DateTime latest(DateTime a, DateTime b)

但我找不到这样的东西。我可以轻松编写它,但我确信 JodaTime 会在某个地方提供它。

【问题讨论】:

    标签: java jodatime


    【解决方案1】:

    正如 Jack 所指出的,DateTime 实现了 Comparable。如果您使用 Guava,则最多两个日期(比如 ab)可以通过以下简写方式确定:

    Ordering.natural().max(a, b);
    

    【讨论】:

      【解决方案2】:

      DateTime 实现了Comparable,所以除了做之外你不需要自己动手:

      DateTime latest(DateTime a, DateTime b)
      {
        return a.compareTo(b) > 0 ? a : b;
      }
      

      或直接使用 JodaTime API(考虑到 Chronology 不像 compareTo):

      DateTime latest(DateTime a, DateTime b)
      {
        return a.isAfter(b) ? a : b;
      }
      

      【讨论】:

      • 谢谢,我写了一些类似于你的第二个例子的东西,但我希望能在 JodaTime utils 类中找到类似的东西,而不是自己创建。
      猜你喜欢
      • 2017-08-26
      • 2011-06-05
      • 2016-06-06
      • 2019-03-07
      • 1970-01-01
      • 2021-07-29
      • 2021-04-10
      • 2011-12-04
      • 1970-01-01
      相关资源
      最近更新 更多