Duvidas com relação as datas

3 respostas
A

Olá pessoal, estou começando a estudar java, e estou com algumas duvidas. Vocês podem me ajudar ou pelo menos me dar algumas dicas. Obrigado

Coloquei a questão e o programa que fiz.O resultado está saindo da forma como foi pedido, mas acho que o programa não está feito da maneira que foi pedido


Determine o número de dias num mês. Você deve usar um comando switch para
setar um inteiro com o número de dias no mês especificado. Por enquanto adicione
todo o código no método main().
a) Declare três inteiros, um para manipular os dias (1-31), outro os meses (1-12)
e um terceiro para manipular o ano. Inicialize estas variáveis com um dia
da sua escolha.
b) Imprima a data no formato dd/mm/yyyy.
c) Declare uma variável para armazenar o número de dias que contém o mês
escolhido. Então, usando o comando switch, determine o valor para esta
variável. São 30 dias em Abril, Setembro, Junho e Novembro e 31 nos
restantes exceto para Fevereiro que tem 28 (ignore o ano bissexto).
Experimente executar o programa com diferentes valores para o mês. O que
acontece se ele for executado com um mês inválido como 13 ? Para 27 de
Janeiro de 2000 a saída deve ser algo como
27/1/2000
31 dias no mês

O resultado está saindo da forma como foi pedido, mas acho que o programa não
está feito da maneira que foi pedido

import java.util.Scanner;
public class Dias
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        int dia, mes, ano;
        System.out.println("Entre com um dia do semana : ");
        dia = sc.nextInt();
        System.out.println("Entre com o número referente ao mês :");
        mes = sc.nextInt();
        System.out.println("Digite o ano desejado :");
        ano = sc.nextInt();
        
       switch(mes)
        {
            case 1:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                     break;
            case 2:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"28 dias no mes");
                    break;
            case 3:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            case 4:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"30 dias no mes");
                    break;
            case 5:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            case 6:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"30 dias no mes");
                    break;
            case 7:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            case 8:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            case 9:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"30 dias no mes");
                    break;
            case 10:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            case 11:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"30 dias no mes");
                    break;
            case 12:System.out.println(dia+"/"+mes+"/"+ano+"\n"+"31 dias no mes");
                    break;
            default:System.out.println("Mes inexistente!!!");
                    break;
        }
        
    }
}

3 Respostas

ViniGodoy

Só um pequeno detalhe:

"Seu professor":
Você deve usar um comando switch para SETAR UM INTEIRO com o número de dias no mês especificado

Isso significa que você terá outra variável, chamada diasNoMes. Então, com o switch vc define o valor dessa variável. Algumas outras dicas:
1. Lembre-se que o switch, sem o break, vai até o comando seguinte. No seu caso, você pode usar esse fato para simplificar o seu switch nos meses que tem o mesmo número de dias, e poupar várias linhas de código repetido.
2. Sempre defina as suas variáveis no ponto onde for usa-las.
3. Normalmente, não se usa um outro comando na mesma linha do case. Pule uma linha.
4. Prefira pular linhas usando vários println do que "\n". Isso deixa o seu sistema mais multi-plataforma, já que o separador do linux (\n) e do Windows (\r\n) são diferentes e o println sabe disso.

Aqui vai um exemplo, já corrigido.
import java.util.Scanner;
public class Dias {
   public static void main(String args[]) {     
      Scanner sc = new Scanner(System.in);
      System.out.println("Entre com um dia do semana : ");
      int dia = sc.nextInt();
      System.out.println("Entre com o número referente ao mês :");
      int mes = sc.nextInt();
      System.out.println("Digite o ano desejado :");
        int ano = sc.nextInt();

      int diaNoMes;        
      switch(mes) {
         case 1: 
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
            diasNoMes = 31;
            break;
         case 2:
            diasNoMes = 28;
            break;
         case 4:
         case 6:
         case 9:
         case 11:
            diasNoMes = 30;
            break;
         default:
            System.out.println("Mes inexistente!!!");
            break;
      }

      System.out.println(dia+"/"+mes+"/"+ano);
      System.out.println(diasNoMes + " dias no mes");
   }
}
A

Valeu pela ajuda

A

Eu não tinha entendido este “setar um inteiro”.

Criado 25 de julho de 2008
Ultima resposta 25 de jul. de 2008
Respostas 3
Participantes 2