(require("@nginstack/engine/lib/date/evaluateDateExpression"))(expression, baseDate [, format])
Avalia uma expressão de data relativa a uma data base. Esta função é utilizada pela função module:@nginstack/engine/lib/date/parseDate e raramente precisará ser utilizada diretamente.
A expressão tem o formato [âncora][±N[unidade]]..., sem distinção entre maiúsculas e
minúsculas e ignorando espaços.
Âncoras de dia, aplicadas antes dos deslocamentos:
h,0ouhoje: data base;oouontem: dia anterior à data base;a,amanhãouamanha: dia seguinte à data base.
Nos formatos de mês e ano (DateFormat.MMYYYY), as âncoras de dia anterior e seguinte representam a data base.
Âncoras de período, aplicadas após os deslocamentos: i<unidade> (início) e f<unidade> (fim),
onde a unidade pode ser w (semana ISO 8601, de segunda-feira a domingo), m (mês),
t (trimestre), s (semestre) ou a (ano). Exemplo: fm-1m é o último dia do mês anterior.
Deslocamentos: +N ou -N seguido opcionalmente de uma unidade: d (dias), w (semanas),
m (meses), t (trimestres), s (semestres) ou a (anos). Quando a unidade não é informada,
são considerados meses no formato DateFormat.MMYYYY, semanas no formato
DateFormat.WWYYYY e dias nos demais formatos. Deslocamentos em meses que resultem em um
dia inexistente são ajustados para o último dia do mês, como 31/03 -1m = 28/02 ou 29/02.
Parameters:
| Name | Type | Argument | Description |
|---|---|---|---|
expression |
string | Expressão de data. |
|
baseDate |
Date | Data base da expressão. Deve estar sem a parte de horas. |
|
format |
DateFormat |
<optional> |
Formato do campo. Determina a unidade dos deslocamentos informados sem unidade. O padrão é DateFormat.DDMMYYYY. |
Throws:
-
Caso o texto inicie com "+" ou "-" e não seja uma expressão válida.
- Type
- Error
Returns:
Data resultante ou null caso o texto informado não seja uma expressão,
como uma data digitada.
- Type
- Date | null
Members
-
<inner, constant> dayAnchors :Record.<string, number>
-
Deslocamento em dias das âncoras que representam um dia relativo à data base.
Type:
- Record.<string, number>
-
<inner, constant> monthsByUnit :Object.<string, number>
-
Quantidade de meses de cada unidade de período.
Type:
- Object.<string, number>
Methods
-
<inner> applyOffset(date, amount, unit)
-
Aplica um deslocamento à data.
Parameters:
Name Type Description dateDate amountnumber unitstring Returns:
- Type
- Date
-
<inner> createDate(year, month, day)
-
Cria uma data sem a parte de horas, contornando os dias em que a meia-noite não existe devido ao horário de verão.
Parameters:
Name Type Description yearnumber monthnumber daynumber Returns:
- Type
- Date
-
<inner> getDefaultUnit(format)
-
Obtém a unidade que deve ser utilizada nos deslocamentos informados sem unidade, preservando o comportamento histórico da função parseDate.
Parameters:
Name Type Description formatDateFormat Returns:
- Type
- string
-
<inner> snapToPeriod(date, unit, end)
-
Obtém o primeiro ou o último dia do período que contém a data.
Parameters:
Name Type Description dateDate unitstring Unidade do período: "w", "m", "t", "s" ou "a".
endboolean Indica se deve ser retornado o último dia do período.
Returns:
- Type
- Date