A tener en cuenta:
- Acepta cualquier día escrito en cualquier combinación de minúsculas y mayúsculas, se usa toLowerCase() para pasarlo a minúsculas.
- Se usa el método substring() dentro del método capitalizeDay(String day) para capitalizar el día ingresado.
- El método isWorkingDay(String day) es usado para la lógica de negocio.
- Acepta miércoles y sábado sin acento.
import java.util.Scanner;
public class WorkingDay {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String day;
String opt;
showHeader();
do {
System.out.print("\n* Ingrese el nombre del día de la semana: ");
day = scanner.next();
isWorkingDay(day.toLowerCase());
System.out.print("Para terminar digite 0 o cualquier tecla para calcular otro día: ");
opt = scanner.next();
} while (!opt.equals("0"));
System.out.println("\nClosing app... Thanks for using our service");
scanner.close();
}
private static void isWorkingDay(String day) {
switch (day) {
case "lunes":
case "martes":
case "miercoles":
case "miércoles":
case "jueves":
case "viernes":
System.out.printf("%n%s es un día hábil.%n%n", capitalizeDay(day));
break;
case "sábado":
case "sabado":
case "domingo":
System.out.printf("%s no es un día hábil.%n%n", capitalizeDay(day));
break;
default:
System.out.printf("%n%s no corresponde a un día de la semana%n%n", day);
}
}
private static String capitalizeDay(String day) {
return day.substring(0, 1).toUpperCase().concat(day.substring(1));
}
private static void showHeader() {
System.out.print("""
*********************************
Welcome to Working day app
*********************************
""");
}
}