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

[Sugerencia] Verificación de día hábil

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner =  new Scanner(System.in);
        String[] weekDays = {"lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo"};
        String userDay;

        do {
            System.out.println("Ingresa el día a verificar (para terminar escribe salir):");
            userDay = scanner.nextLine();

            if (Arrays.asList(weekDays).contains(userDay)){

                if (userDay.equalsIgnoreCase("sabado")||userDay.equalsIgnoreCase("domingo"))
                System.out.println(userDay + " día no habil.");
                else System.out.println(userDay + " es un día habil.");

            } else if (!userDay.equalsIgnoreCase("salir"))
                System.out.println("Día no reconocido, intenta uno diferente");

        } while (!userDay.equalsIgnoreCase("salir"));

        scanner.close();
        System.out.println("Programa finalizado");

    }
}
1 respuesta

Hola Luis, espero que estés bien

Tu código está bastante bien estructurado y parece cumplir con el objetivo de verificar si un día es hábil o no. Sin embargo, hay un pequeño detalle que podrías ajustar para que la salida sea más consistente con el ejemplo proporcionado en la actividad. El ejemplo muestra que la primera letra del día en la salida debe estar en mayúsculas, incluso si el usuario la ingresa en minúsculas.

Para lograr esto, puedes modificar la salida del System.out.println para capitalizar la primera letra del userDay. Aquí tienes un ejemplo de cómo podrías hacerlo:

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner =  new Scanner(System.in);
        String[] weekDays = {"lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo"};
        String userDay;

        do {
            System.out.println("Ingresa el día a verificar (para terminar escribe salir):");
            userDay = scanner.nextLine();

            if (Arrays.asList(weekDays).contains(userDay)){

                // Capitaliza la primera letra del día
                String capitalizedDay = userDay.substring(0, 1).toUpperCase() + userDay.substring(1);

                if (userDay.equalsIgnoreCase("sabado") || userDay.equalsIgnoreCase("domingo"))
                    System.out.println(capitalizedDay + " no es un día hábil.");
                else
                    System.out.println(capitalizedDay + " es un día hábil.");

            } else if (!userDay.equalsIgnoreCase("salir"))
                System.out.println("Día no reconocido, intenta uno diferente");

        } while (!userDay.equalsIgnoreCase("salir"));

        scanner.close();
        System.out.println("Programa finalizado");
    }
}

Con este cambio, el programa capitalizará la primera letra del día que el usuario ingrese, asegurando que la salida coincida con el formato esperado en la actividad. Espero que esto te ayude a mejorar tu solución. ¡Bons estudios!