comparación LocalDate fuera de rango, pero una salida incorrecta - Java

null.ts:

Im tratando de comparar dos fechas con una lista de fechas (elemento de la lista se ha eliminado ya que requeriría más clases proporcionadas así que sólo estoy dando los requisitos básicos para que se ejecute)

Las dos fechas la lista se compara con un intervalo de fechas es para identificar los objetos que están dentro de este rango

Cuando dos fechas correctas se proporcionan como una gama de la salida está bien

el problema se produce cuando se proporciona un rango incorrecto (fecha de finalización se inicia antes de la fecha) un rango de fecha no válida, no se emite

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);
    }
}
Dhruv Saksena:

Esto está ocurriendo porque no se está utilizando "==" es igual a opeator. Está asignando el valor de la cláusula-si.

Basta con sustituir la Cláusula si

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410208&siteId=1
Recomendado
Clasificación