Subtraindo Datas em java apenas nos dias uteis!Como?
2 respostas
R
richardfonseca
Pessoal:
Estou com um problema em relação a datas…vou expor ele:
Tenho, por ex, a data 13/09/2002 10:00hs, que seria minha data inicial. Tenho uma segunda data que seria 15/09/2002 11:00hs.
Como faço para subtrair uma data da outra em horas e minutos, desconsiderando sabados e domingos e contando como válida apenas das 8:00hs as 17:48hs com 1 hora de intervalo.
Por favor, me ajudem pois meu projeto depende da resolução deste problema.
Bom Richard, isso com certeza nao eh uma tarefa, digamos assim, trivial.
Voce ja pensou no algoritmo? se voce tiver o algoritmo, o resto fica facil. Eis aqui a maneira que eu faria:
Voce trabalha 8:48 hs por dia ( das 8 as 17:48 sao 9:48, menos o horario do intervalo )
Pegue a data inicial. Se voce comecou as 10:00hs, vai precisar subtrair 1:12hs do valor final
Pegue a data final. Se voce terminou as 11:00hs, vai precisar subtrair 6:48hs do valor final.
Tenha isso em mente.
Para cada dia, crie um objeto Date e verifique o dia da semana. Se for sabado ou domingo ( usand o DAY_OF_WEEK se nao me engano ) apenas ignore, caso contrario some 8:48hs no valor total.
No final vc vai ter o total geral de horas. Subtraia os valores dos itens 2 e 3 e pronto.
Nao ha uma maneira pronta de verificar se eh feriado ou nao. Voce precisara pegar um calendario comum e montar um array ou objeto com os dias que sao feriados na tua cidade, entao usar isso para comparar com a data que esta sendo processada no momento.
Acho que basicamente falando eh isso.
Rafael
Paulo_Silveira
eh
a ideia eh a que o Rafael falou! Lembre-se de usar o java.util.GregorialCalendar
Se voce ja tem algo, coloca aqui para a gente ver! Ai a gente da uma ajuda melhor!
Porque rpecisamos saber que objetos voce recebe e que tipo de objeto quer devolver!