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 鈥淐鈥 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.

Esteve Sanpons

ES