Olá pessoal…
Hoje vou mostrar uma função desenvolvida que retorna o número de dias úteis entre duas datas utilizando a linguagem AdvPL.
Esta rotina para a contagem dos dias, desconsidera sábados, domingos e feriados (cadastrados na tabela 63 da SX5), então por exemplo, entre os dias 30/10/2016 até 05/11/2016, quantos dias são úteis?
A rotina no caso retorna 4, que representa o número de dias úteis entre as duas datas de referência.
Abaixo a rotina completa.
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zDiasUteis Função que retorna a quantidade de dias úteis entre duas datas @author Atilio @since 25/10/2016 @version 1.0 @type function @param dDtIni, date, Data inicial a ser considerada @param dDtFin, date, Data final a ser considerada @example u_zDiasUteis(sToD("20161001"), sToD("20161025")) u_zDiasUteis(FirstDate(dDataBase), LastDate(dDataBase)) @obs Quanto as feriados, eles devem estar cadastrados na SX5, tabela "63" /*/ User Function zDiasUteis(dDtIni, dDtFin) Local aArea := GetArea() Local nDias := 0 Local dDtAtu := sToD("") Default dDtIni := dDataBase Default dDtFin := dDataBase //Enquanto a data atual for menor ou igual a data final dDtAtu := dDtIni While dDtAtu <= dDtFin //Se a data atual for uma data Válida If dDtAtu == DataValida(dDtAtu) nDias++ EndIf dDtAtu := DaySum(dDtAtu, 1) EndDo RestArea(aArea) Return nDias
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Parabéns pelos posts, tem alguma funcao que retorno o 5. dia util do mes?
Boa noite Rodrigo, tudo bem?
De cabeça desconheço, o que você poderia fazer é:
Seria +- assim eu acho.
Um grande abraço.