Module: @nginstack/engine/lib/date/evaluateDateExpression


(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, 0 ou hoje: data base;
  • o ou ontem: dia anterior à data base;
  • a, amanhã ou amanha: 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