Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Día hábil y no hábil - solución

import java.util.Scanner;

public class Alura {
    public static void main(String[] args) {
        // Declaración de variables
        Scanner scanner = new Scanner(System.in);

        // Entrada de datos
        System.out.println("Ingrese el día de la semana (en minúsculas): ");
        String dia = scanner.nextLine();

        // Capitalizar la primera letra directamente
        String diaCapitalizado = dia.substring(0, 1).toUpperCase() + dia.substring(1).toLowerCase();

        // Validación del día de la semana
        if(dia.equals("lunes") || dia.equals("martes") || dia.equals("miércoles") || dia.equals("miercoles") ||
           dia.equals("jueves") || dia.equals("viernes")) {
            System.out.println( diaCapitalizado + " es un día hábil.");
        } else {
            System.out.println(diaCapitalizado + " no es un día hábil.");
        }

        // Cierre del scanner
        scanner.close();

    }
}
1 respuesta

¡Hola Erick, espero que estés bien!

Tu código está casi perfecto para resolver el problema de identificar si un día es hábil o no. Sin embargo, hay un pequeño detalle que podrías mejorar para que el programa funcione exactamente como se espera. Actualmente, tu programa capitaliza la primera letra del día ingresado, lo cual es genial, pero hay un detalle en la condición del if que podrías ajustar para que sea más claro y eficiente.

Aquí tienes una pequeña sugerencia:

  1. Consistencia en el uso de diaCapitalizado: Aunque estás capitalizando el día ingresado, en la condición del if sigues comparando con los días en minúsculas. Para mantener consistencia y claridad, podrías comparar directamente con diaCapitalizado en lugar de dia.

Aquí tienes cómo podrías ajustar tu código:

import java.util.Scanner;

public class Alura {
    public static void main(String[] args) {
        // Declaración de variables
        Scanner scanner = new Scanner(System.in);

        // Entrada de datos
        System.out.println("Ingrese el día de la semana (en minúsculas): ");
        String dia = scanner.nextLine();

        // Capitalizar la primera letra directamente
        String diaCapitalizado = dia.substring(0, 1).toUpperCase() + dia.substring(1).toLowerCase();

        // Validación del día de la semana
        if(diaCapitalizado.equals("Lunes") || diaCapitalizado.equals("Martes") || 
           diaCapitalizado.equals("Miércoles") || diaCapitalizado.equals("Miercoles") ||
           diaCapitalizado.equals("Jueves") || diaCapitalizado.equals("Viernes")) {
            System.out.println(diaCapitalizado + " es un día hábil.");
        } else {
            System.out.println(diaCapitalizado + " no es un día hábil.");
        }

        // Cierre del scanner
        scanner.close();
    }
}

Con este ajuste, el programa debería funcionar correctamente para cualquier entrada de día de la semana, capitalizando adecuadamente la primera letra y comparando de manera consistente.

Espero haber ayudado y buenos estudios!