Mitra Global Services

Navimania 57 – Función CALCDATE

Hola a todos!

Aquí estamos una semana más 😎. Hoy me he percatado de que nunca os he hablado de cómo calcular fechas, y sabemos que Navision y Business Central tienen una extensa funcionalidad acerca de esto.

Esta semana os voy a enseñar la función CALCDATE. Esta función que viene del estándar, nos permitirá a través de unas expresiones, calcular nuevas fechas a partir de una fecha inicial.

Os dejo la documentación oficial en el link

Dicho todo esto vamos manos a la obra 😤

Lo primero que voy a mostrar es la estructura base:

Lo que vemos aquí es que tiene dos parámetros, uno obligatorio que sería el DateExpresion y el segundo opcional que sería la fecha desde la cual partimos para los cálculos (si no se añade ninguna fecha, cogerá la del sistema).

Ahora vamos a ver las expresiones que podemos llegar a añadir.

Lo primero a comentar es que se puede sumar o restar, por lo que se utilizara el + y el –.

También añadiremos una numeración, 1,2,3…

Por último, utilizaremos las unidades de tiempo.

  • D: Día
  • WD: Día laboral
  • W: Semana
  • M: Mes
  • Q: Trimestre
  • Y: Año

A estas unidades le podemos añadir el prefijo “C” para determinar el día actual.

Vale, sé que esto es un poco lioso, pero ahora lo veremos más claro en un ejemplo.

Para determinar el primer día de la semana actual seria -CW esto nos devolvería la fecha del lunes de esta misma semana. O sea, hoy 🙈

Si quisiéramos sumar 2 días al día de hoy lo que tendríamos que hacer es añadir +2D.

Ahora os voy a poner unos ejemplos, basados en lo que más he utilizado yo:

  • Final trimestre +1 mes -10 días: <CQ+1M-10D>
  • Menos un año: <-1Y>
  • Final de mes: <CM>
  • Inicio del mes: <-CM>
  • Inicio de semana: <-CW>
  • Final de año: <CY>
  • Principio de año: <-CY>
  • Principio de mes del mes que viene: <-CM+1M>
  • Principio de año del año pasado: <-CY-1Y>

Ahora vamos a verlo en formato de código con algunos ejemplos:

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

ES