[firebase-br] Trabalhar com campos do tipo data e hora
Nivaldo Martins
nivaldomart em gmail.com
Qua Jun 15 20:20:02 -03 2011
Olá amigo,
Se eu entendi bem o que vc quer fazer é verificar o tempo de duração de um
processo sendo que ele só estará sendo executado no período entre 07:00 e
17:00
E for isso eu usaria a seguinte lógica:
*--Se a data de término do processo for igual à data de início subtraio a
hora de término da hora de início*
if (data_inicio_processo = data_fim_processo) then
begin
duracao = (hora_fim_processo - hora_inicio_processo)
end
*-- se não for eu preciso percorrer os dias de duração do processo e
acumular a duração*
if (data_inicio_processo < data_fim_processo) then
begin
--*Acumulo o tempo de duração no primeiro dia*
duracao = hora_fim_expediente - horai_nicio_processo;
data_aux = datai_nicio_processo + 1 dia; (acho que em consegue UDF que
manipule datas)
*--**Se o processo não terminou neste dia significa que durou todo o
expediente*
while data_aux < data_fim_processo do
begin
duracao = duracao + (hora_inicio_expediente - hora_fim_expediente)
data_aux = data_aux + 1 dia
end
*--depois que sair do while falta pegar o tempo do último dia*
duracao = duracao + (hora_fim_do_expediente - hora_fim_processo)
Acho que com essa lógica você pode calcular a duração do seu processo
considerando que ele comece e termine no mesmo dia ou que ele dure dois dias
ou mais
Espero ter ajudado
Nivaldo Martins
Desenvolvedor
www.neotecnologia.net
SSA-BA
Em 13 de junho de 2011 16:58, José Otávio Lussari <tavinhol em gmail.com>escreveu:
> Pessoal, boa tarde!
>
> Estou precisando trabalhar com campos do tipo data e hora. Como vocês
> fariam
> o seguinte:
>
>
>
> - Preciso registrar a data e hora do inicio de um processo.
>
> - Preciso registrar a data e hora do fim desse mesmo processo.
>
>
>
> Vamos supor que esse processo começou dia 13/06/2011 as 15:00
>
> e
>
> terminou dia 14/06/2011 as 9:15
>
>
>
> Como eu posso somar isso? Levando em consideração que o horário de
> expediente vai até as 17:00 e começa no outro dia as 07:00.
>
>
>
> Coloco a data e a hora em campos separados ou crio um campo TIMESTAMP?
>
>
>
> Uso Firebird 1.5.3, D7, FIBPlus.
>
> Espero que possam me dar uma luz...
>
> Desde já, muito obrigado!
>
>
>
>
>
> atenciosamente,
>
>
>
> [ ]’s
> José Otávio Lussari
> Analista de Sistemas
>
> Bel. em Sistemas de Informação
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista