validarDataInt static method
- int? data
@validacoes_utils
Valida uma data no formato AAAAMMDD (int)
Exemplo de entrada:
validarDataInt(20240315)
validarDataInt(20240229) // 2024 é bissexto, válido
validarDataInt(20230229) // 2023 não é bissexto, inválido
Exemplo de saída:
null // válido
'Data inválida' // inválido
Retorna null se válido, ou uma mensagem de erro se inválido
Implementation
static String? validarDataInt(int? data) {
if (data == null) {
return 'Data é obrigatória';
}
final dataStr = data.toString();
if (dataStr.length != 8) {
return 'Data deve estar no formato AAAAMMDD';
}
final ano = int.tryParse(dataStr.substring(0, 4));
final mes = int.tryParse(dataStr.substring(4, 6));
final dia = int.tryParse(dataStr.substring(6, 8));
if (ano == null || mes == null || dia == null) {
return 'Data 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';
}
// Verifica se a data é válida
try {
DateTime(ano, mes, dia);
} catch (e) {
return 'Data inválida';
}
return null;
}