Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Diferença de horas(dias úteis)

Boa tarde, alguém sabe me responder como pegar uma quantidade de horas entre dias úteis.

exemplo: interval(today() -  '10/01/2014 00:00:00), essa formula retorna o intervalo de horas, mas não exclui sábados e domingos.

Labels (1)
24 Replies
Not applicable
Author

Seguindo esse exeplo seu, o resultado não está correto;

=Interval(

    (DayEnd('2015-01-09 15:00:00') - '2015-01-09 15:00:00') +

    ('2015-01-10 14:00:00' - DayStart('2015-01-10 14:00:00')) +

    RangeMax(NetWorkDays('2015-01-09 15:00:00'+1,'2015-01-10 14:00:00'),0)

retorna 22:00:00 sendo que dia 10 é um sábado.

Clever_Anjos
Employee
Employee

Veja se te atende

=Interval(

  if(WeekDay('2015-01-09 15:00:00')< 5, DayEnd('2015-01-09 15:00:00') - '2015-01-09 15:00:00', 0) +

  if(WeekDay('2015-01-10 14:00:00')< 5, '2015-01-10 14:00:00' - DayStart('2015-01-10 14:00:00'),0) +

  RangeMax(NetWorkDays('2015-01-10 14:00:00'+1,'2015-01-10 14:00:00'-1,Feriados),0)

Not applicable
Author

Só nao funcionou o feriado, no lugar da variável coloquei a data que que deveria nao ser utilizada, mas não funcionou, o restante funciona muito bem.

=Interval(

  if(WeekDay('2015-01-09 16:00:00')< 5, DayEnd('2015-01-09 16:00:00') - '2015-01-09 16:00:00', 0) +

  if(WeekDay('2015-01-13 16:00:00')< 5, '2015-01-13 16:00:00' - DayStart('2015-01-13 16:00:00'),0) +

  RangeMax(NetWorkDays('2015-01-13 14:00:00'+1,'2015-01-13 14:00:00'-1,'2015-01-13'),0)

)

nicolett_yuri

Da uma olhada no meu exemplo.

Peguei o código do Clever

Not applicable
Author

Funciona muita bem se eu fornecer as datas diretamente, mas não é meu caso, vou postar uma parte do  script, pra ficar mais claro

if(Left(interval(if(WeekDay(Timestamp(data_Final + horaFinal))< 5, DayEnd(Timestamp(data_Final + horaFina)) - Timestamp(data_Final + horaFina), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),2) > '72:00:00' or (isnull(data_analise) and left(Interval(if(WeekDay(today())< 5, DayEnd(today()) - today(), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),0) > '72:00:00'),'SIM','NAO') as foraPrazo,

Not applicable
Author

Correção :

if(Left(interval(if(WeekDay(Timestamp(data_Final + horaFinal))< 5, DayEnd(Timestamp(data_Final + horaFinal)) - Timestamp(data_Final + horaFinal), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),2) > '72:00:00' or (isnull(data_analise) and left(Interval(if(WeekDay(today())< 5, DayEnd(today()) - today(), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),0) > '72:00:00'),'SIM','NAO') as foraPrazo,

nicolett_yuri

Não entendi

Not applicable
Author

Esse script abaixo que eu criei, funciona muito bem mas não exclui dias não úteis.

add o script do Clever ao meu.

if(interval(Timestamp(data_Final + horaFinal) - timestamp(data + hora)) > '72:00:00' or (isnull(data_analise) and Interval(today() - timestamp(data + hora)) > '72:00:00'),'SIM','NAO') as foraPrazo

Not applicable
Author

Esse script abaixo que eu criei, funciona muito bem mas não exclui dias não úteis.

coloquei o código do clever dentro do meu interval, mudei apenas os nomes dos campos.

Funcionava Assim:

if(interval(Timestamp(data_Final + horaFinal) - timestamp(data + hora)) > '72:00:00' or (isnull(data_analise) and Interval(today() - timestamp(data + hora)) > '72:00:00'),'SIM','NAO') as foraPrazo

Como está agora com o script do Clever :

if(Left(interval(if(WeekDay(Timestamp(data_Final + horaFinal))< 5, DayEnd(Timestamp(data_Final + horaFinal)) - Timestamp(data_Final + horaFinal), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),2) > '72:00:00' or (isnull(data_analise) and left(Interval(if(WeekDay(today())< 5, DayEnd(today()) - today(), 0) +

   if(WeekDay(timestamp(data + hora))< 5, timestamp(data + hora) - DayStart(timestamp(data + hora)),0) +

   RangeMax(NetWorkDays(timestamp(data + hora)+1,timestamp(data + hora)-1),0)),0) > '72:00:00'),'SIM','NAO') as foraPrazo,

Ficou mais claro?

nicolett_yuri

Se for maior que 72 horas esta fora do prazo, é isso?