Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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.
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)
)
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)
)
Da uma olhada no meu exemplo.
Peguei o código do Clever
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,
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,
Não entendi
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
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?
Se for maior que 72 horas esta fora do prazo, é isso?