validarAnoMes static method

String? validarAnoMes(
  1. int? anoMes
)

@validacoes_utils

Valida um ano/mês no formato AAAAMM

Exemplo de entrada:

validarAnoMes(202403)
validarAnoMes(202313)  // mês inválido

Exemplo de saída:

null  // válido
'Mês deve estar entre 01 e 12'  // inválido

Retorna null se válido, ou uma mensagem de erro se inválido

Implementation

static String? validarAnoMes(int? anoMes) {
  if (anoMes == null) {
    return 'Ano/mês é obrigatório';
  }

  final anoMesStr = anoMes.toString();
  if (anoMesStr.length != 6) {
    return 'Ano/mês deve estar no formato AAAAMM (ex: 202301)';
  }

  final ano = int.tryParse(anoMesStr.substring(0, 4));
  final mes = int.tryParse(anoMesStr.substring(4, 6));

  if (ano == null || mes == null) {
    return 'Ano/mês 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';
  }

  return null;
}