Reto del Reloj a Través del Espejo en Java

Hola estimado lector, estaba yo aquí en mi habitación, que se me apetecía hacer un reto de programación en Java, viendo en mi página favoritas de retos www.aceptaelreto.com , vi un reto que la verdad me llamó la atención, que era hacer que un reloj se marque en el espejo, está bastante chulo aquí os dejo el reto:

Hoy te has despertado y al mirar, con legañas en los ojos, el reloj de agujas de tu habitación te has llevado un susto de muerte. ¡Las 8:05! ¡¡Ya llegas tarde!! Afortunadamente enseguida te has dado cuenta de que estabas viendo el reloj a través del espejo. Al mirar al reloj real, has visto que eran solo las 3:55. No sólo no llegas tarde, sino que todavía hay tiempo para otro buen sueñecito…
Reloj visto desde un espejo
¿Eres capaz de hacer un programa que, dada una hora en el espejo, devuelva la hora real?

Os digo lo que hay que hacer, básicamente usar el doble de la hora actual y restarlo y cuando aparezca volver al inicio de la cuenta, es ítem tanto minutos como segundos. Aquí os dejo el algoritmo:

  try {
            int minutos, horas, calculoMinuto, calculoHora;

            String time = «»;
            Scanner sca = new Scanner(System.in);

            String[] horasTime;
            System.out.println(«Dígame la hora(HH:MM): «);
            time = sca.nextLine();
            horasTime = time.split(«:»);
            horas = Integer.parseInt(horasTime[0]);
            minutos = Integer.parseInt(horasTime[1]);

            if (horas > 12 | horas < 0) {
                throw new Exception(«»);
            }
            if (minutos > 59 | minutos < 0) {
                throw new Exception(«»);
            }
            calculoMinuto = minutos * 2;
            while (calculoMinuto > 0) {

                if (minutos < 0) {
                    minutos = 59;
                }
                minutos = minutos – 1;
                calculoMinuto = calculoMinuto – 1;

            }
            if (minutos < 0) {
                minutos = 59;
            }
            calculoHora = horas * 2;
            while (calculoHora > 0) {

                if (horas <= 0) {
                    horas = 12;
                }
                horas = horas – 1;
                calculoHora = calculoHora – 1;

            }
            if (horas <= 0) {
                horas = 12;
            }
            String hora, minuto;
            hora = horas + «»;
            minuto = minutos + «»;
            if (hora.length() == 1) {
                hora = «0» + hora;
            }
            if (minuto.length() == 1) {
                minuto = «0» + minuto;
            }
            
            System.out.println(«La hora espejo es:n » + hora + «:» + minuto);
        } catch (Exception ex) {
            System.out.println(«Debes de poner un patrón válido HH:MM»);
        }

Si os ha gustado déjame tu comentario abajo, que me quiero enterar, un saludo y hasta pronto 🙂

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.