Add getInstance() and isHourInRange() methods to DateHelper for compatibility

This commit is contained in:
MSI\joaly 2025-11-21 22:47:02 -04:00
parent 40189e4a9c
commit 3f36666c4d

View File

@ -19,13 +19,24 @@ public final class DateHelper {
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");
// Instancia única para el patrón Singleton (compatibilidad con código existente)
private static final DateHelper INSTANCE = new DateHelper();
/**
* Constructor privado para prevenir que la clase sea instanciada.
* Constructor privado para prevenir que la clase sea instanciada directamente.
*/
private DateHelper() {
// Clase de utilidad, no necesita ser instanciada.
}
/**
* Obtiene la instancia única de DateHelper (patrón Singleton).
* @return La instancia única de DateHelper.
*/
public static DateHelper getInstance() {
return INSTANCE;
}
/**
* Obtiene la fecha y/o hora actual en la zona horaria de Venezuela.
*
@ -65,4 +76,37 @@ public final class DateHelper {
public static String getCurrentVenezuelanTime() {
return ZonedDateTime.now(VENEZUELA_ZONE_ID).format(TIME_FORMATTER);
}
/**
* Verifica si una hora está dentro de un rango especificado.
*
* @param hourBegin Hora de inicio en formato HHmm (ej: 800 para 08:00, 1800 para 18:00).
* @param hourFinish Hora de fin en formato HHmm (ej: 800 para 08:00, 1800 para 18:00).
* @param timeString Hora a verificar en formato "HH:mm:ss" o "HH:mm".
* @return true si la hora está dentro del rango [hourBegin, hourFinish], false en caso contrario.
*/
public boolean isHourInRange(int hourBegin, int hourFinish, String timeString) {
if (timeString == null || timeString.trim().isEmpty()) {
return false;
}
// Extrae las horas y minutos del String (formato "HH:mm:ss" o "HH:mm")
String[] timeParts = timeString.split(":");
if (timeParts.length < 2) {
return false;
}
try {
int hour = Integer.parseInt(timeParts[0]);
int minute = Integer.parseInt(timeParts[1]);
// Convierte la hora a formato HHmm
int currentHour = hour * 100 + minute;
// Verifica si está en el rango
return currentHour >= hourBegin && currentHour <= hourFinish;
} catch (NumberFormatException e) {
return false;
}
}
}