Java - Ayuda con sumar y restar horas

 
Vista:

Ayuda con sumar y restar horas

Publicado por Jose (2 intervenciones) el 15/01/2020 19:06:20
Hola soy estudiante de primer año en programación, resulta que en estos días en mi trabajo mi jefe me pidió ayuda para hacer el horario de la tienda lo que me llevo a querer crear un programa para hacerlo mas facil pero esto implica poner una hora de entrada una hora de salida, calcular cuantas horas hay entre esas 2 variables restar 1 hora de almuerzo y que cada día alamacena la cantidad de horas si fueran horas puntuales seria mas facil por ejemplo si entra a las 10 y sale a las 21 se restan entre si lo que da 11 se le resta 1 de hora de descanso y da 10 horas que se almacenarian en un dia X para ser sumados con todos los dias trabajados pero el problema empieza cuando la persona entra a las 10:30 y se va a las 19:45 alguna idea como le puedo hacer ???? les dejo una foto de la Jframe que e echo
Ejemplo-1


Empezando no se que tipo de variable tengo que usar toda la ayuda se agradese
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con sumar y restar horas

Publicado por Kabuto (1381 intervenciones) el 16/01/2020 00:31:23
Puedes transformar las horas en minutos para los cálculos.

Es decir, un día tiene 24 x 60 = 1440 minutos

El día empieza en el minuto 0 y acaba en el minuto 1440

Si alguien entra a las 10:30, significa que ha entrado en el minuto 630 del día.
Si sale a las 19:45, significa que se va en el minuto 1185 del día.

Calculamos la diferencia entre estos minutos: 1185 - 630 = 555

Significa que ha trabajado 555 minutos, es decir, 9 horas y 15 minutos (luego habría que descontar la hora de descanso y lo que corresponda)

Trabajando con minutos los cálculos son más sencillos de hacer. Lo único que hay que saber es como pasar de horas a minutos y viceversa.

Por ejemplo, los 555 minutos, para pasar a horas basta con dividir entre 60 e ignorar la parte decimal
555 / 60 = 9
Para calcular los minutos correspondientes a la parte decimal que hemos ignorado, hacemos modulo de 60
555 mod 60 = 15

Con esos calculos obtenemos que 555 minutos trabajados son 9 horas y 15 minutos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con sumar y restar horas

Publicado por Billy Joel (876 intervenciones) el 16/01/2020 14:50:09
Acá te dejo algo que te puede servir

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
 
public class CalcularHoras {
    public static void main(String[] args) {
        String h1 = "10:30";
        String h2 = "19:45";
        LocalTime hora_1 = LocalTime.parse(h1);
        LocalTime hora_2 = LocalTime.parse(h2);
        int almuerzo = 60; //Una hora = 60 minutos
        long diff = ChronoUnit.MINUTES.between(hora_1, hora_2) - almuerzo;
        Double h = diff / 60.00;
        Long m = diff % 60;
        LocalTime hf = LocalTime.of(h.intValue(), m.intValue());
        System.out.println(hf);
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con sumar y restar horas

Publicado por Rodrigo (623 intervenciones) el 16/01/2020 18:27:50
Usar Las clases Instant y Duration te libera de hacer aritmetica que podrias fallar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con sumar y restar horas

Publicado por Luis Carlos (1 intervención) el 17/11/2022 22:37:14
No podia deja de comentar este post de Billy Joel , estuve buscando la forma de realizar esta operación en mi software y a pesar que intenté de distintas maneras ninguna funcionó. mil gracias excelente aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con sumar y restar horas

Publicado por Edwin (1 intervención) el 23/08/2023 19:20:50
Muchas gracias por el aporte, hace muchos días tenia esto como un dolor de cabeza, pero me sirvió mucho, ahora puedo avanzar con mi proyecto "Control de asistencia".
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar