validarDataHoraInt static method
- int? dataHora
Valida uma data/hora no formato AAAAMMDDHHMMSS (int) Retorna null se válido, ou uma mensagem de erro se inválido
Implementation
static String? validarDataHoraInt(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.tryParse(dataHoraStr.substring(0, 4));
final mes = int.tryParse(dataHoraStr.substring(4, 6));
final dia = int.tryParse(dataHoraStr.substring(6, 8));
final hora = int.tryParse(dataHoraStr.substring(8, 10));
final minuto = int.tryParse(dataHoraStr.substring(10, 12));
final segundo = int.tryParse(dataHoraStr.substring(12, 14));
if (ano == null ||
mes == null ||
dia == null ||
hora == null ||
minuto == null ||
segundo == null) {
return 'Data/hora deve conter apenas números';
}
if (ano < 2000 || ano > 2100) {
return 'Ano deve estar entre 2000 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 básica de data/hora válida
try {
DateTime(ano, mes, dia, hora, minuto, segundo);
} catch (e) {
return 'Data/hora inválida';
}
return null;
}