FirstDate/LastDate
Primeiro e ultimo dia do mes a partir de uma data qualquer. Indispensavel em relatorios mensais e fechamentos.
Assinatura: FirstDate(d) -> dPrimeiro // LastDate(d) -> dUltimo
Retorna: Date
Duas funcoes triviais mas usadissimas em fechamentos contabeis, relatorios e cortes mensais.
d := CtoD("15/05/2026")
ConOut(DToC(FirstDate(d))) // 01/05/2026
ConOut(DToC(LastDate(d))) // 31/05/2026
// Primeiro/ultimo dia do mes anterior
dIni := FirstDate(MonthAdd(dDataBase, -1))
dFim := LastDate(MonthAdd(dDataBase, -1))
Aplicacao classica — filtro de relatorio
cQry := "SELECT * FROM " + RetSqlName("SE1") + ;
" WHERE E1_EMISSAO BETWEEN '" + DToS(FirstDate(dRef)) + ;
"' AND '" + DToS(LastDate(dRef)) + "'"
Pegadinhas
- LastDate respeita bissexto — 29/02 em ano bissexto, 28/02 caso contrario.
- MonthAdd combinado — pra outros meses:
FirstDate(MonthAdd(d, -1))= primeiro dia mes anterior. - Data vazia retorna data vazia (nao excecao).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
dData | Date | sim | Data qualquer do mes de referencia. |