Subtraindo Datas em java apenas nos dias uteis!Como?

2 respostas
R

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.

Obrigado

Richard :?:

2 Respostas

Rafael_Steil

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:

  1. Voce trabalha 8:48 hs por dia ( das 8 as 17:48 sao 9:48, menos o horario do intervalo )

  2. Pegue a data inicial. Se voce comecou as 10:00hs, vai precisar subtrair 1:12hs do valor final

  3. Pegue a data final. Se voce terminou as 11:00hs, vai precisar subtrair 6:48hs do valor final.

  4. Tenha isso em mente.

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

  6. No final vc vai ter o total geral de horas. Subtraia os valores dos itens 2 e 3 e pronto.

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

Criado 13 de setembro de 2002
Ultima resposta 13 de set. de 2002
Respostas 2
Participantes 3