Soma de meses?

2 respostas
poojava
alan_daniel

Então galera, minha professora passou uma lista, e estou com duvida numa soma, eu não queria fazer algo muito grande na hora de somar os meses, queria se possível fazer um for para somar cada mês, que ficaria num switch pequeno tipo assim.

protected int diasNoMes(int m) {
    switch (m) {
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12: return(31);
 
      case 4:
      case 6:
      case 9:
      case 11: return(30);
 
      default: if (anoBissexto(ano) == true)
                  return(29);
               else return(28);
    }
  }

Eu ja fiz a classe mês.

package pkg04;

/**
 *
 * @author alan
 */
public class Data {

    private int dia;
    private int mes;
    private int ano;

    public Data() {
        this.dia = 0;
        this.mes = 0;
        this.ano = 0;
    }

    public Data(int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    public int getDia() {
        return dia;
    }

    public int getMes() {
        return mes;
    }

    public int getAno() {
        return ano;
    }

}

O exercício.

2 Respostas

staroski

Então posta ela pra gente ver como ficou.

Dica: O default, de um switch deveria tratar o que é padrão, no seu caso você está usando para tratar a exceção, que seria o mês 2, isso é pouco legível. Eu faria assim:

protected int diasNoMes(Data data) {
	switch (data.getMes()) {
		case 2 :
			return anoBissexto(data) ? 29 : 31;
		case 4:
		case 6:
		case 9:
		case 11:
			return 30;
		default:
			return 31;
	}
}
alan_daniel

Eu me enganei, eu fiz a classe data.

Criado 23 de maio de 2017
Ultima resposta 23 de mai. de 2017
Respostas 2
Participantes 2