Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá,
Preciso fazer uma lógica para o primeiro dia do mês ser sempre o segundo dia útil desse mês..
Exemplo, esse mês 01/20120 precisaria que a variável vDataInicial fosse igual a '03/01/2020' e a vDataFinal igual a '01/02/2020'.
Preciso aplicar a função acima na regra abaixo, sabem me dizer como posso fazer?
Eai blz?
Um jeito de resolver é fazer assim:
LET _PRIMEIRO_DIA = '01/01/2020';
LET _ULTIMO_DIA = MonthEnd(_PRIMEIRO_DIA);
LET _ULTIMO_DIA_UTIL = DayName(_ULTIMO_DIA, 1);
LET _FERIADOS = '01/01/2020';
SET _ITER = '$(_PRIMEIRO_DIA)' + IterNo() - 1;
CALENDARIO:
LOAD
*
, RowNo() as diaUtil
WHERE
not (feriado
or WildMatch(diaSemana, 'sáb', 'dom')
)
;
LOAD
*
, IF(SubStringCount('$(_FERIADOS)', data)
, 1
, 0
) as feriado
, WeekDay(data) as diaSemana
;
LOAD
DayName($(_ITER)) as data
AutoGenerate 1
WHILE
$(_ITER) <= '$(_ULTIMO_DIA)'
;
LET _PRIMEIRO_DIA_UTIL = Peek('data', 1, 'CALENDARIO');
TRACE _PRIMEIRO_DIA = $(_PRIMEIRO_DIA);
TRACE _ULTIMO_DIA = $(_ULTIMO_DIA);
TRACE _PRIMEIRO_DIA_UTIL = $(_PRIMEIRO_DIA_UTIL);
TRACE _ULTIMO_DIA_UTIL = $(_ULTIMO_DIA_UTIL);
Certo,
No caso de mais feriados... coloco nesse _FERIADOS separado por virgula?
Ex: LET _FERIADOS = '01/01/2020', '10/04/2020', ...;
LET _FERIADOS = '01/01/2020';
Faz a separação por dentro das aspas.
LET _FERIADOS = '01/01/2020,10/04/2020';