Exercício 10) Elaborar um algoritmo (Java) para imprimir o número de dias de um dado mês e ano. Anos bissextos deverão ser tratados convenientemente, ou seja, em anos bissextos o mês de fevereiro possui 29 dias.
Dica: anos bissextos são múltiplos de 4 e não são múltiplos de 100, exceto os anos múltiplos de 400, que também são bissextos.
NÃO TENHO A MÍNIMA IDÉIA de como fazer isso, alguém pode me ajudar?
Por favor, ao postar tópicos, não deixe os títulos APENAS COM LETRAS MAIÚSCULAS. Nem fique mendigando ajuda.
Além de prejudicar a leitura, é pouco ético.
Quanto ao seu problema, use o operador de resto. Exemplo:
if (ano % 400 == 0) //Testa se o ano é divisível por 400.
Olá matheusunitt, sei que pode ser como “chutar cachorro morto”, mas é que eu estava fazendo o código sem ver sua resposta, ou antes, sei lá… mas lá vai heheheh
package br.bom.bissexto;
public class Ano {
private int dias;
private int ano;
private boolean bi;
//construtor
public Ano(int ano) {
this.setAno(ano);
}
private void setBissexto() {
if (this.getAno() % 4 == 0
&& (this.getAno() % 400 == 0 || this.getAno() % 100 != 0)) {
this.setDias(366);
this.setBi(true);
} else {
this.setBi(false);
this.setDias(365);
}
}
// deixei private para impedir que sobra aça externa
private void setDias(int dias) {
this.dias = dias;
}
public int getDias() {
return dias;
}
public void setAno(int ano) {
this.ano = ano;
// toda que vez q o ano for alterado
// ja calcula o dados...
this.setBissexto();
}
public int getAno() {
return ano;
}
// deixei private para impedir que sobra aça externa
private void setBi(boolean bi) {
this.bi = bi;
}
public boolean isBi() {
return bi;
}
}
Classe principal:
package br.bom.bissexto;
public class Principal {
public static void main(String args[]){
Ano ano = new Ano(2024);
System.out.println("Ano "+ano.getAno()+" tem "+ano.getDias()+" dias.");
}
}
[quote=mp123]Elaborar um algoritmo (Java) para imprimir o número de dias de um dado mês e ano. Anos bissextos deverão ser tratados convenientemente, ou seja, em anos bissextos o mês de fevereiro possui 29 dias.
Dica: anos bissextos são múltiplos de 4 e não são múltiplos de 100, exceto os anos múltiplos de 400, que também são bissextos.
NÃO TENHO A MÍNIMA IDÉIA de como fazer isso, alguém pode me ajudar?
Grato pra quem puder me ajudar!!!
[/quote]
Como você não postou nenhum código, estou colocando um. Fiz no notepad, então, qualquer “bug”, fica como lição de casa pra você, blza?
import javax.swing.JOptionPane;
class Dia {
int qtde;
public recuperaMes(int mes){
switch (mes) {
case 1: qtde = 31;break;
case 2: qtde = 28;break;
case 3: qtde = 31;break;
case 4: qtde = 30;break;
case 5: qtde = 31;break;
case 6: qtde = 30;break;
case 7: qtde = 31;break;
case 8: qtde = 31;break;
case 9: qtde = 30;break;
case 10: qtde = 31;break;
case 11: qtde = 30;break;
case 12: qtde = 31;break;
}
public recuperaAno(int ano){
if (ano % 400 == 0 && qtde == 28) {
qtde += 1;
JOptionPane.showMessageDialog(null,"o mes digitado do ano" + ano + "possui" + qtde + "dias");
}
}
}
public static void main(String[]args){
Dia app = new Dia();
app.recuperaMes(Integer.parseInt(JOptionPane.showInputDialog("Informe o mês desejado (numeros de 1 a 12)");
app.recuperaAno(Integer.parseInt(JOptionPane.showInputDialog("Informe o ano desejado");
}
}