esFechaValidaYYYMMDD static method

bool esFechaValidaYYYMMDD({
  1. required String fecha,
})

Funcion que toma como paramentro una fecha de tipo String YYYY-MM-DD y devuelve true si esa fecha es mayor a la fecha actual y false si es menor tener en cuenta se puede mandar unicamente con separador - o /

Implementation

static bool esFechaValidaYYYMMDD({required String fecha}) {
  fecha.replaceAll('/', '-');
  try {
    RegExp fechaRegex = RegExp(r'^\d{4}-\d{2}-\d{2}$');
    if (!fechaRegex.hasMatch(fecha)) {
      return false;
    }
  } catch (e) {
    FlutterUtilsProvider.logDebug('esFechaValidaYYYMMDD error $e');
    return false;
  }

  try {
    final DateTime parsedDate = DateTime.parse(fecha);

    // Verifica si la fecha se ha convertido correctamente
    // y si los componentes de la fecha son los mismos que en la cadena original
    final List<String> parts = fecha.split('-');
    if (parsedDate.year == int.parse(parts[0]) &&
        parsedDate.month == int.parse(parts[1]) &&
        parsedDate.day == int.parse(parts[2])) {
      return true;
    }
  } catch (e) {
    FlutterUtilsProvider.logDebug('esFechaValidaYYYMMDD error $e');
    // Si la conversión falla, la fecha no es válida
    return false;
  }
  return false;
}