×
Linguagem de Programação ADVPL
Perguntas Tratando data.
- poliester
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 93
- Obrigados Recebidos: 0
11 anos 4 semanas atrás #17994
por poliester
Tratando data. foi criado por poliester
Pessoal,
Essa semana me deparei com uma pergunta interessante, possivelmente alguns de vocês já se depararam com ela também.
Pergunta: Tenho uma data e quero adicionar à ela 8 dias úteis, como faço?
Resposta:
X = 25/10/2013 (essa é a data principal)
Y = 8 (quantidade de dias a serem adicionados, o sistema sozinho irá calcular o próximo dia útil a partir da soma)
_dData := DATAVALIDA(DAYSUM(X,Y))
Resultado deverá ser: 04/11/2013
Essa brincadeirinha ajuda muito em gatilhos!
Essa semana me deparei com uma pergunta interessante, possivelmente alguns de vocês já se depararam com ela também.
Pergunta: Tenho uma data e quero adicionar à ela 8 dias úteis, como faço?
Resposta:
X = 25/10/2013 (essa é a data principal)
Y = 8 (quantidade de dias a serem adicionados, o sistema sozinho irá calcular o próximo dia útil a partir da soma)
_dData := DATAVALIDA(DAYSUM(X,Y))
Resultado deverá ser: 04/11/2013
Essa brincadeirinha ajuda muito em gatilhos!
Por favor Acessar ou Registrar para participar da conversa.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
11 anos 3 semanas atrás #18036
por mbrigagao
Respondido por mbrigagao no tópico Tratando data.
Poliester,
Segue um exemplo:
Obs.: Na tabela SZ0 eu tenho cadastrados os feriados móveis.
Espero que te de uma luz.
Segue um exemplo:
User Function VK0901DTU(_dDataIni,_nQtdDias)
Local _aArea := GetArea()
Local _dDataRef := _dDataIni
Local _dDataFim := _dDataIni
Local _nPrzEnt := SuperGetMv("VK_PRZENT",.F.,28)
Local cSZ0Filial:= xFilial("SZ0")
If _nQtdDias <= 0
_nQtdDias := 28
EndIf
_nQtdDias := (_nQtdDias - 2)
For _nDias:= 1 To (_nQtdDias)
_dDataRef := DataValida(_dDataRef)
dbSelectArea("SZ0") // Cadastro de Feriados Moveis
dbSetOrder(1)
If dbSeek( cSZ0Filial+dTos(_dDataRef),.F.)
_dDataRef := (_dDataRef+1)
_dDataRef := DataValida(_dDataRef)
EndIf
_dDataRef := (_dDataRef+1)
Next
_dDataFim := DataValida(_dDataRef)
RestArea(_aArea)
Return(_dDataFim)
Obs.: Na tabela SZ0 eu tenho cadastrados os feriados móveis.
Espero que te de uma luz.
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.084 segundos