viernes, 5 de marzo de 2021

Jcl - tratamiento de fechas (3)

Vamos a ver cómo se puede realizar tratamiento de fechas en un jcl. Para ello vamos a partir de la fecha del sistema y a suponer que la fecha del día es 8 de Agosto de 2017 (08-08-2017).


//* %%SET %%FECHAX = %%$ODATE
//*------------------------------------------------------------------------
//* %%SET %%AAAA     = %%SUBSTR %%FECHAX 1 4
//* %%SET %%MM        = %%SUBSTR %%FECHAX 5 2
//* %%SET %%DD         = %%SUBSTR %%FECHAX 7 2
//* %%SET %%FECDIA   = %%AAAA-%%MM-%%DD
//*------------------------------------------------------------------------
//* %%SET %%FECHAD  = %%$OYEAR-%%OMONTH-%%ODAY
//*------------------------------------------------------------------------

ODATE - contiene la fecha del día que según el ejemplo dado sería 20170808 (OJO!!!! fíjate en el formato, va primero el año y a continuación el mes y el día, todo junto, sin ningún tipo de separación).

La variable FECHAX contendrá la fecha del sistema, es decir, el ODATE (20170808).

La variable AAAA contendrá el año de la fecha existente en FECHAX (2017).

La variable MM contendrá el mes de la fecha existente en FECHAX (08).

La variable DD contendrá el día de la fecha existente en FECHAX (08).

La variable FECDIA contendrá la unión de las tres variables antes mencionadas separadas por guiones (2017-08-08).

La variable FECHAD contendrá la fecha del sistema en el formato AAAA-MM-DD (20170808). Si os fijáis se obtiene el mismo resultado que el obtenido en la variable FECDIA pero en una sola línea.

3 comentarios:

  1. hola, puede ser que entonces la forma de resolverlo es usando otra herramienta? Para que resuelva esas variables. Porque los "%%" serian de las Auto-edit variables de Control-M, no?

    ResponderEliminar
    Respuestas
    1. Hola,

      Cuando se monta un jcl esa es la manera de recuperar, lo que se llama, variables del sistema (como la fecha).

      Un saludo.

      Eliminar
  2. tambien que existe el %%$CALCDTE que se volvio mas versatil en ctrl-m v9 (antes era %%CALCDATE).

    y la importancia del $ que incluye los 4 digitos del año. Por ejemplo si usaramos %%ODATE te daria 170808,


    ResponderEliminar