Buscar este blog

Translate

thumbnail

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 :)







Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

Popular Posts

Con la tecnología de Blogger.