【问题标题】:Java - LocalDate comparison out of range but incorrect output [duplicate]Java - LocalDate 比较超出范围但输出不正确[重复]
【发布时间】:2020-04-05 09:48:26
【问题描述】:

我正在尝试将两个日期与日期列表进行比较(列表元素已被删除,因为它需要提供更多类,所以我只是给出它运行的基本要求)

列表要比较的两个日期是一个日期范围,用于识别该范围内的对象

当提供两个正确的日期作为一个范围时,输出很好

当提供的范围不正确(结束日期在开始日期之前)时会出现问题,并且没有输出无效的日期范围

package test;

import java.time.LocalDate;

public class A1 {

    public void searchEnrolments(int StartDay, int StartMonth, int StartYear, int EndDay, int EndMonth, int EndYear) {
           LocalDate a = LocalDate.of(StartYear, StartMonth, StartDay);
           LocalDate b = LocalDate.of(EndYear, EndMonth, EndDay);   
           boolean before = a.isBefore(b);
           if (before = true) {
                   System.out.println("Out of range: ");
                   }
          else {
                 System.out.println("Invalid Date Range");
               }
          }
}

package test;
public class aTester {
    public static void main(String[] args) {
        A1 a2= new A1();
        a2.searchEnrolments(20, 04, 2020, 10, 02, 2019);
    }
}

【问题讨论】:

    标签: java localdate


    【解决方案1】:

    发生这种情况是因为您没有使用“==”等于运算符。您在 if 子句中分配值。

    只需替换 if 子句-

     if (before == true) {
                       System.out.println("Out of range: ");
                       }
              else {
                     System.out.println("Invalid Date Range");
                   }
              } 
    

    【讨论】:

    • 啊,愚蠢的错误。感谢您的宝贵时间
    • 顺便说一句,我们中的许多人更喜欢较短的if (before)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多