vc tem 2 informacoes: tempo de entrada e tempo de saida, certo?
logo sao as variaveis entrada e saida.
vc tem agora o comeco e fim do horario noturno.
se suas variaveis sao hora mais data, isso significa q se eu entro hoje as 18 e saio amanha as 7, o horario de saida tem um dia a mais relativo ao dia de hoje.
se vc tem os objetos java.util.Date perfeitamente calculados levando em conta o dia +1, assim como o comeco e fim do horario noturno, entao vc faz
O cálculo que eu tenho está da seguinte maneira: Eu uso o comando Duration.between para descobri quantos segundos de diferença tem entra o tempo de entrada e de saida, com isso tenho quantas horas ele trabalhou. Comparo com quantas horas o funcionário necessita trabalhar e assim tenho quantas horas extra ele fez.
Eu não entendi muito bem o que você explicou, o que seria esse EndDate 1 e 2 e StartDate 1 e 2.
Se puder me explicar o que essa linha faz eu agradeço, gostaria de entender o que estou fazendo.
P
peczenyj
vc quer saber o overlap de 2 datas
1 eh o seu intervalo de tempo que representa as horas noturnas
2 eh o intervalo trabalhado
start é o começo, end é o fim
G
Guilherme_Vaz
Poderia me explicar a sintase por favor:
No meu caso EndDate 1 = 5:00 e StartDate1 = 21:00
EndDate 2 = Horário de saida e StartDate2 = Horário de entrada
Mas o que é esse overlap, o max, 0, e min. Quais suas utilidades dentro dessa linha de comando?
overlap = max(0, min(EndDate1, EndDate2) - max(StartDate1, StartDate2))
P
peczenyj
Vamos la
max seria o maior horario
min seria o menor horario
Lembre-se q 5 AM do dia seguinte é no dia seguinte
Se usar este algoritmo vc vai descobrir
G
Guilherme_Vaz
Valeu por tentar ajudar, mas é que eu não entendi esse algorítimo e não funcionou.