@Hisaelguedes escreveu:
Oque faz a linha "int[] diasPorMes = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};" ela é necessária? não estou conseguindo entender a função dela.
public class Data {
private int dia; // 1-31 conforme o mês private int mes; // 1-12 private int ano; // qualquer ano // construtor: chama checkMes para confirmar o valor adequado para mes; // chama checkDia para confirmar o valor adequado para dia public Data(int day, int month, int year) { dia = checkDia(day); // valida dia mes = checkMes(month); // valida month ano = year; // poderia validar ano } // método utilitário para confirmar o valor adequado de dia com base em mes e ano private int checkDia(int testaDia) { int[] diasPorMes = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // veririca se dia está no intervalo para mes if (testaDia > 0 && testaDia <= diasPorMes[mes]) { return testaDia; } // verifica ano bissexto else if (mes == 2 && testaDia == 29 && (ano % 400 == 0 || (ano % 4 == 0 && ano % 100 != 0))) { return testaDia; } //System.out.printf( "Dia inválido (%d) configura para 1.", testaDia ); return testaDia; // mantém o objeto em estado consistente } // método utilitário para confirmar o valor adequado do mes public int checkMes(int testaMes) { if (testaMes > 0 && testaMes <= 12) // valida mes { return testaMes; } else { System.out.printf( "Mês inválido (%d) configure para 1.", testaMes); return 1; // mantém o objeto em estado consistente } }
Mensagens: 6
Participantes: 4