validarDataFormato static method

String? validarDataFormato(
  1. int? data
)

Valida se uma data está no formato correto (AAAAMMDD)

Implementation

static String? validarDataFormato(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;
}