Ejercicio 19. Días por mes

Realiza un programa que pida un número entero entre uno y doce e imprima el número de días que tiene el mes correspondiente.

Este ejercicio podríamos realizar con varias opciones, al saber los valores predeterminados que tendrá nuestra variable mes podríamos hacerlo con un switch, pero como el resultado que esperamos del programa muestra resultados que podríamos agrupar, siendo iguales para varias opciones, en este caso, es más adecuado el uso de la estructura if.

Como vemos en el listado, tendríamos las siguientes opciones:

  • Si mes = 1, enero debe mostrar 31 días.
  • Si mes = 2, febrero debe mostrar 28 días.
  • Si mes = 3, marzo debe mostrar 31 días.
  • Si mes = 4, abril debe mostrar 30 días.
  • Si mes = 5, mayo debe mostrar 31 días.
  • Si mes = 6, junio debe mostrar 30 días.
  • Si mes = 7, julio debe mostrar 31 días.
  • Si mes = 8, agosto debe mostrar 31 días.
  • Si mes = 9, septiembre debe mostrar 30 días.
  • Si mes = 10, octubre debe mostrar 31 días.
  • Si mes = 11, noviembre debe mostrar 30 días.
  • Si mes = 12, diciembre debe mostrar 31 días.
  • Si mes = otro valor , se debe mostrar un error

Como vemos, los resultados a mostrar por nuestro programa se repiten para varios valores, de forma que podríamos resumirlo de la siguiente forma:

  • Si mes = (1, 3, 5, 7, 8, 10, 12), el resultado es 31 días.
  • Si mes = (2), el resultado es 28 días.
  • Si mes = (4, 6, 9, 11), el resultado es 30 días.
  • Si mes = otro valor, el resultado es ERROR
package estructurasAlternativas;

/**
19 Ejercicios Estringucturas Alternativas en Java

Programa:
Escribe un programa que pida un número entero entre uno y doce e imprima el
número de días que tiene el mes correspondiente.

@author: manolohidalgo_
@date: 09-11-19
*/

import java.util.Scanner;
// Inicio del programa y declaración de variables:
public class Ejercicio19NumeroDiasMes {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int mes;

// Solicitud de datos al usuario
    System.out.println("El programa te devuelve el número de días del mes seleccionando:");
    System.out.println(" 1.- Enero.");
    System.out.println(" 2.- Febreo.");
    System.out.println(" 3.- Marzo.");
    System.out.println(" 4.- Abril.");
    System.out.println(" 5.- Mayo.");
    System.out.println(" 6.- Junio.");
    System.out.println(" 7.- Julio.");
    System.out.println(" 8.- Agosto.");
    System.out.println(" 9.- Septiembre.");
    System.out.println("10.- Octubre.");
    System.out.println("11.- Noviembre.");
    System.out.println("12.- Diciembre.");
    mes = scanner.nextInt();

// Realizamos comparaciones y mostramos el resultado
    if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12){
      System.out.println("El mes seleccionado tiene 31 días");
    } else if (mes ==2){
      System.out.println("Febrero tiene 28 días");
    } else if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
      System.out.println("El mes seleccionado tiene 30 días");
    } else {
      System.out.println("Error, el mes debe estar entre 1-12.");
    } 
  }
}

Puedes acceder a este ejercicio en GitHub en este enlace

Si tienes alguna duda al respecto, alguna sugerencia o algo que no te haya quedado claro, no tienes más que escribirme en los comentarios, estoy aquí para ayudarte y aprender, ¡Nos leemos!