× Linguagem de Programação ADVPL

Perguntas Tratando data.

Mais
10 anos 6 meses 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!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 6 meses atrás #18036 por mbrigagao
Respondido por mbrigagao no tópico Tratando data.
Poliester,

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.083 segundos
Joomla templates by a4joomla