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");
}
}