Descubre CALCDATE: Simplificando el Cálculo y Manipulación de Fechas en Navision y Business Central



Fecha :

Categorías : Navision   Business_Central


¡Hola a todos de nuevo! En esta ocasión, quiero compartir con vosotros una funcionalidad increíble pero a menudo pasada por alto en Navision y Business Central: ¡cómo calcular fechas de forma sencilla y efectiva! Es esencial comprender esta capacidad, ya que puede facilitar en gran medida el trabajo con fechas y permitirnos realizar operaciones avanzadas con ellas.

Hoy vamos a sumergirnos en el tema de la función CALCDATE, una poderosa herramienta que nos permitirá calcular nuevas fechas a partir de una fecha inicial. Antes de continuar, podéis consultar la documentación oficial sobre esta función en el siguiente Link


¿Estáis listos para desentrañar los secretos detrás de CALCDATE? Pues, vamos manos a la obra 😤


La estructura base de la función CALCDATE es la siguiente:


NewDate := CALCDATE(DateExpression [, Date])



En esta estructura, encontramos dos parámetros: uno obligatorio, llamado DateExpression, y otro opcional, que se refiere a la fecha desde la cual queremos realizar nuestros cálculos. Si no se proporciona esta última fecha, la función tomará automáticamente la fecha del sistema.

Ahora, echemos un vistazo a las expresiones que podemos utilizar con CALCDATE.

En primer lugar, podemos sumar o restar días utilizando los símbolos “+” y “–”. Además, podemos utilizar una numeración secuencial, comenzando desde 1 y aumentando según nuestras necesidades.

Por último, tenemos las unidades de tiempo que podemos emplear:

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


Si deseamos referirnos a la unidad de tiempo actual, simplemente añadiremos el prefijo “C” antes de la unidad correspondiente.

Lo sé, puede resultar un poco confuso al principio, pero no os preocupéis. Vamos a ver un ejemplo para aclarar las cosas.

Imaginad que queremos obtener la fecha del primer día de la semana actual, es decir, el lunes de esta misma semana. Para lograrlo, simplemente utilizaríamos la expresión -CW, lo que nos devolvería la fecha de hoy 🙈.

Si, por otro lado, deseamos sumar 2 días a la fecha de hoy, bastaría con añadir +2D a nuestra expresión.



Permítidme ahora proporcionar algunos ejemplos adicionales que os serán de utilidad:

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



Espero que estos ejemplos os hayan ayudado a comprender mejor la versatilidad de la función CALCDATE.

Ahora bien, para que todo quede aún más claro, os he preparado algunos ejemplos en código utilizando CALCDATE:


codeunit 50000 "calcdate"
{

    procedure FinalTrimestre() NewDate: Boolean
    begin
        NewDate := CalcDate('<CQ>');
    end;

    procedure MenosUnYear(ValueDate: Date) NewDate: Boolean
    begin
        NewDate := CalcDate('<-1Y>', ValueDate);
    end;

    procedure UltimoDiaDelMesActual() NewDate: Boolean
    begin
        NewDate := CalcDate('<CM>');
    end;
}



En resumen, la función CALCDATE en Navision y Business Central es una herramienta poderosa para calcular y manipular fechas de forma efectiva. Con expresiones como suma y resta de días, numeración secuencial y unidades de tiempo, podemos realizar cálculos avanzados. Es útil para obtener fechas específicas, como el último día del trimestre o el primer día del mes siguiente.



Como siempre, podréis ver el ejemplo entero en el GitHub


Siéntete libre de expresar tus puntos de vista y preguntas. Deseo que encuentres este contenido valioso e inspirador, ¡y espero verte en próximas actualizaciones!