当前位置: 首页 > 知识库问答 >
问题:

LocalDate:缺少方法isEqualOrBefore和isEqualOrAfter

璩华辉
2023-03-14

问:您是如何处理这些用例的?

  • 是否使用静态帮助器方法?
  • 是否使用后跟isafter/isbefore的详细等于?
  • 是否使用否定的相反条件?
  • 是否使用第三方库帮助程序?
    null
  /**
   * @return true if candidate >= reference </br>
   *         or in other words: <code>candidate.equals(reference) || candidate.isAfter(reference)</code> </br>
   *         or in other words: <code>!candidate.isBefore(reference) </br>
   *         or in other words: <code>candidate.compareTo(reference) >= 0
   */
  public static boolean isEqualOrAfter(LocalDate candidate, LocalDate reference)
  {
    return !candidate.isBefore(reference);
  }

  /**
   * @return true if candidate <= reference </br>
   *         or in other words: <code>candidate.equals(reference) || candidate.isBefore(reference)</code> </br>
   *         or in other words: <code>!candidate.isAfter(reference) </br>
   *         or in other words: <code>candidate.compareTo(reference) <= 0
   */
  public static boolean isEqualOrBefore(LocalDate candidate, LocalDate reference)
  {   
    return !candidate.isAfter(reference);
  }

Edit:正如Andreas所建议的,我用compareto方法添加了版本,我希望我正确(无需测试)。

编辑2:示例:

// Manager says: "Show me everything from 3 days ago or later" or "show me everything that's at most 3 days old"
for(Item item : items) {
  // negation idiom
  if(!item.getDate().isBefore(LocalDate.now().minusDays(3))) {
    // show
  }

  // compareTo idiom
  if(item.getDate().compareTo(LocalDate.now().minusDays(3)) >= 0) {
    // show
  }

  // desired
  if(item.getDate().isEqualOrAfter(LocalDate.now().minusDays(3))) {
    // show
  }
}

共有1个答案

蒋鸿文
2023-03-14

你所寻求的方法是不可靠的。你就是这么做的:

isEqualOrBefore == !isAfter
isEqualOrAfter == !isBefore
 类似资料:
  • 问题内容: 我在项目中使用Spring 5。直到今天,仍然有可用的方法。 但是下载最新的快照后,它突然消失了!有没有参考说明该方法现在不可用? 我的依赖项列表: 更新: 似乎此方法已被替换为 问题答案: 请参阅与该提交关联的DATACMNS-944,它具有以下重命名

  • 我在我的项目中使用Spring 5。直到今天,还有可用的方法。 但下载最新快照后,它突然消失了!有没有参考现在没有的方法? 我的依赖项列表: 更新: 似乎此方法已被

  • 我是groovy的新手。我有这样的代码。 串味 从这个客户端映射中,我需要迭代appName和enable的值。为此,我使用了get方法。。。我对此不确定。 使用此get方法时,我遇到以下错误。因为我是groovy新手,所以我不知道这里发生了什么 棒极了。lang.MissingMethodException:没有方法com的签名。康卡斯特。csv。哈克索。SecureFirebaseRestCl

  • 我是Groovy新手,但我正在尝试编写一个简单的递归方法来将层次路径解析为对象图。以下是我尝试过的: 但我得到以下错误: 我错过了什么?

  • 我正在使用Hibernate5.4.15.fianl版本连接到DB2数据库。创建SessionWorks时,我收到以下错误: 使用配置类对象配置属性, 我尝试了在网络上找到的所有可能的组合来获取会话工厂对象 1。从上面的配置对象: 每个调用直接或间接到达Hibernate类:SessionFactoryImpl构造函数行:259 -- getProperties()方法不是此类的一部分,并获取异常