[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