esFechaValidaYYYMMDD static method
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;
}