Bom Dia pessoal,
Estou com um problema que não consigo solucionar. Pesquisei no Google e neste fórum em busca de uma resposta e não consegui nada que pudesse me ajudar. Vejam o que eu preciso:
Data inicial Data Final
19/01/2012 02:06 20/01/2012 13:17
Eu preciso que este espaço de data seja calculado com as seguintes restrições
- Se a data inicial for antes de 09:30, esta data deve ser alterada para 09:30, exemplo: 19/01/2012 02:06 > 19/01/2012 09:30
- Se a data inicial não for igual a final (sempre será menor), devemos calcular as horas dentro do espaço das 09:30 às 18:30. dos dias, Exemplo: 19/01/2012 02:06 20/01/2012 13:17 > 09:30 às 13:17 = 03:47.
- Se as datas tiverem um espaço maior do que esse, contar 8 horas de trabalho para cada dia trabalhado e calcular as horas remanescentes.
- Não pode contar sabado e nem domingo.
- Se a data final e inicial for anterior às 09:30 do mesmo dia, devemos calcular o espaço normal.
Veja abaixo um pequeno exemplo já com os resultados:
19/01/2012 02:09 24/01/2012 17:00 = 31:30
Na data inicial temos a hora antes das 09:30, ou seja, devemos colocar como inicial 09:30. Entre o dia 19 e 24 de janeiro de 2012 tivemos um final de semana, ou seja, devemos contar apenas 19, 20, 23 e 24. no dia 19 tivemos 8 horas assim como nos dias 20 e 23. No dia 24 tivemos 07:30 (09:30 - 17:00) configurando 31:30.
19/01/2012 02:17 19/01/2012 02:18 = 00:01
A data final e inicial são as mesmas e a hora final e inicial estão antes das 09:30
20/01/2012 01:40 20/01/2012 18:16 = 08:46
Neste caso, a hora inicial é anterior Às 09:00 e a hora final, posterior, para esse caso devo fazer 18:16 - 09:30
10/02/2012 11:54 10/02/2012 16:31 = 04:55
Calculo normal 16:31 - 11:54
15/02/2012 12:11 17/02/2012 11:38 = 16:27
Calculo entre dias. Das 12:11 até às 18:30 temos 06:19 + 08:00 (do dia 16) + Das 09:30 às 11:38 temos 02:08
Posso garantir a vocês que já tentei de todas as formas possiveis fazer esse calculo, mas tudo o que tentei foi em vão...Espero que possam me ajudar.
Grato desde já.
Postado : 19/10/2012 8:03 am