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 Puntos30650

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

1voto

mokotroco 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.

Otras Preguntas y Respuestas


...

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

Conecta