entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Restar horas en java

Hola estoy intentando hacer un pequeño programa en java que sume y reste (solo horas) en java.
Cuando las sumo funciona perfectamente, por ejemplo. 22h + 4h = son las 2horas; 23h + 4h = son las 3h;
El problema es al restarlas por ejemplo. 1h - 2h = deberia salir 23h; y el programa me muestra. -1h

Alguna sugerencia con operadores aritméticos? modulo, resto...etc....
no quiero utilizar ningún if ni ningún otro condicional.

un saludo

int suma;
System.out.print("Hora ? ");
int hora1= Integer.parseInt(in.nextLine());   
System.out.print("Hora ? ");
int hora2 = Integer.parseInt(in.nextLine());   
suma = (hora1 + hora2) % 24;        
System.out.println("Son las: " + suma + "hrs."); 

1 Respuesta

1voto

magarzon Puntos25050

La fórmula que estás buscando (que vale para la suma y para la resta):

resultado = (24+hora1+hora2) % 24;

Si hora1 y/o hora2 son negativos, se restan,lógicamente.

Ej: (24+22+4) % 24 = 50 % 24 = 2 (24+1-2) % 24 = 23 % 24 = 23

0voto

albertix comentado

Me faltaba añadir el 24 dentro del paréntesis!!

muchas gracias!! funciona perfecto.

un saludo.

0voto

Peter comentado

@albertix por favor selecciona la respuesta como correcta.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

  • Freda0370183 ganó una medalla hace 6 horas

    Club de los 100 - Recibió un total de 100 puntos
  • NilaPilgrim4 ganó una medalla hace 15 horas

    Humano Verificado - Verificó su email
  • ErwinImhoff1 ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
  • FelipeMedel ganó una medalla hace 1 día

    Buen Comentario - Comment received +2 upvote
  • FelipeMedel ganó una medalla hace 1 día

    Renovador - Recibió medalla Buena Respuesta en res…
  • FelipeMedel ganó una medalla hace 1 día

    Buena Respuesta - Recibió +1 votos en respuesta
  • FelipeMedel ganó una medalla hace 1 día

    Buen Comentario - Comment received +2 upvote
  • FelipeMedel ganó una medalla hace 1 día

    Buena Respuesta - Recibió +1 votos en respuesta
  • EllPanda ganó una medalla hace 1 día

    Veterano - Primera visita hace más de 180 días
  • EllPanda ganó una medalla hace 1 día

    Regular - Primera visita hace más de 90 días
...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta