validarDataHoraFormato static method
- int? dataHora
Valida se a data está no formato AAAAMMDDHHMMSS
Implementation
static String? validarDataHoraFormato(int? dataHora) {
if (dataHora == null) {
return 'Data/hora é obrigatória';
}
final dataHoraStr = dataHora.toString();
if (dataHoraStr.length != 14) {
return 'Data/hora deve ter 14 dígitos (AAAAMMDDHHMMSS)';
}
final ano = int.parse(dataHoraStr.substring(0, 4));
final mes = int.parse(dataHoraStr.substring(4, 6));
final dia = int.parse(dataHoraStr.substring(6, 8));
final hora = int.parse(dataHoraStr.substring(8, 10));
final minuto = int.parse(dataHoraStr.substring(10, 12));
final segundo = int.parse(dataHoraStr.substring(12, 14));
if (ano < 1900 || ano > 2100) {
return 'Ano deve estar entre 1900 e 2100';
}
if (mes < 1 || mes > 12) {
return 'Mês deve estar entre 01 e 12';
}
if (dia < 1 || dia > 31) {
return 'Dia deve estar entre 01 e 31';
}
if (hora < 0 || hora > 23) {
return 'Hora deve estar entre 00 e 23';
}
if (minuto < 0 || minuto > 59) {
return 'Minuto deve estar entre 00 e 59';
}
if (segundo < 0 || segundo > 59) {
return 'Segundo deve estar entre 00 e 59';
}
// Validação adicional: verifica se a data/hora é válida
try {
DateTime(ano, mes, dia, hora, minuto, segundo);
} catch (e) {
return 'Data/hora inválida';
}
return null;
}