Funciones de tiempo de ejecución de fecha de X++

Nota

Los grupos de interés comunitario se han trasladado ahora de Yammer a Microsoft Viva Engage. Para unirte a una comunidad Viva Engage y participar en las últimas discusiones, rellena el formulario Solicitar acceso a la Comunidad Viva Engage de Finanzas y Operaciones y elige la comunidad a la que quieres unirte.

En este artículo se describen las funciones de tiempo de ejecución de fecha.

dayName

Recupera el nombre del día de la semana que corresponde a un número.

str dayName(int number)

Parámetros

Parámetro Descripción
número El número de un día en una semana.

Valor devuelto

El día de la semana especificado por el parámetro number.

Notas

Los valores válidos para el parámetro numérico son del 1 al 7. El lunes está representado por 1, el martes por 2 y el domingo por 7.

Ejemplo

static void dayNameExample(Args _arg)
{
    str s = dayName(1);
    print "First day of the week's name is " + s;
    pause;
}

díaDeMes

Calcula el número del día del mes para la fecha especificada.

int dayOfMth(date date)

Parámetros

Parámetro Descripción
fecha La fecha para devolver el día del mes.

Valor devuelto

Un número entero entre 1 y 31 que indica el día del mes para la fecha especificada.

Notas

dayOfMth(31\12\2001) // returns 31.

Ejemplo

static void dayOfMthExample(Args _arg)
{
    date d = today();
    int i = dayOfMth(d);

    print "Today's day of the month is " + int2Str(i);
    pause;
}

díaDeWk

Calcula el número de días de la semana para la fecha especificada.

Nota

El lunes está representado por 1, el martes por 2 y el domingo por 7.

int dayOfWk(date date)

Parámetros

Parámetro Descripción
fecha Un valor de fecha que indica el año, el mes y el día.

Valor devuelto

El número del día especificado en la semana.

Ejemplo

static void dayOfWkExample(Args _arg)
{
    date d = today();
    int i = dayOfWk(d);

    print "Today's day of the week is " + int2Str(i);
    pause;
}

díaDeAño

Calcula el número de días entre el 1 de enero y la fecha especificada.

int dayOfYr(date _date)

Parámetros

Parámetro Descripción
_fecha Fecha que especifica el año, el mes y el día.

Valor devuelto

El número de días entre el 1 de enero y la fecha especificada, inclusive.

Notas

El 1 de enero es 1 y el 31 de diciembre es 365 o 366 dependiendo de si el año es bisiesto.

Ejemplo

static void dayOfYrExample(Args _arg)
{
    date d = today();
    int i = dayOfYr(d);

    print "Today's day of the year is " + int2Str(i);
    pause;
}

fin

Calcula la última fecha del mes de la fecha especificada.

date endMth(date date)

Parámetros

Parámetro Descripción
fecha Valor de fecha que indica un año, un mes y un día.

Valor devuelto

El valor de fecha del último día del mes especificado.

Notas

endMth(02\2\1988); //Returns the date 29\2\1988 because 1988 is a leap year.
endMth(02\2\1989); //Returns the date 28\2\1989.

mkDate

Crea una fecha, basada en tres enteros que indican el día, el mes y el año, respectivamente.

date mkDate(int day, int month, int year)

Parámetros

Parámetro Descripción
día Un número entero que representa el día del mes.
mes Un número entero que representa el mes del año.
año Un número entero que representa el año, que debe estar entre 1900 y 2154.

Valor devuelto

Un valor de fecha basado en los valores del día, mes y año .

Notas

Si la fecha no es válida, este método devuelve una fecha 0 (cero, 1/1/1900).

Ejemplo

static void mkDateExample(Args _arg)
{
    date d;
    
    // Returns the date 01\01\2005.
    d = mkDate(1, 1, 2005);
    print d;
    pause;
}

mthName

Recupera el nombre del mes especificado

str monthName(int number)

Parámetros

Parámetro Descripción
número El número del mes.

Valor devuelto

El nombre del mes especificado.

Notas

Los valores válidos del parámetro number son del 1 al 12. Enero está representado por el 1 y diciembre por el 12.

Ejemplo

static void mthNameExample(Args _arg)
{
    // MthName(6) returns the text string "June".
    str s = mthName(6);

    print "Month name is " + s;
    pause;
}

mes de año

Recupera el número del mes del año para la fecha especificada.

Nota

Enero es el 1, febrero el 2 y diciembre el 12.

int mthOfYr(date date)

Parámetros

Parámetro Descripción
fecha Fecha que especifica un año, un mes y un día.

Valor devuelto

El número del mes del año, para el mes representado por el parámetro date .

Ejemplo

static void mthOfYrExample(Args _arg)
{
    int i = mthOfYr(today());

    print "The number of the month in today's date is " + int2Str(i);
    pause;
}

siguienteMth

Recupera la fecha del mes siguiente que se corresponde más estrechamente con la fecha especificada.

date nextMth(date date)

Parámetros

Parámetro Descripción
fecha La fecha para coincidir en el mes siguiente.

Valor devuelto

La coincidencia más cercana a la fecha especificada que se encuentra en el mes siguiente.

Notas

nextMth(29\2\1996); //returns 29/03/1996.
nextMth(31\1\1996); //returns 2921996, because 1996 is a leap year.

Ejemplo

static void nextMthExample(Args _arg)
{
    date d = nextMth(today());

    print "Closest date next month is "
        + date2Str(d, 2, 2, -1, 2, -1, 4);
    pause;
}

siguienteQtr

Recupera la fecha del trimestre siguiente que se corresponde más estrechamente con la fecha especificada.

date nextQtr(date date)

Parámetros

Parámetro Descripción
fecha La fecha para coincidir en el siguiente trimestre.

Valor devuelto

La coincidencia más cercana a la fecha especificada que la función encuentra en el siguiente trimestre.

Notas

Por ejemplo, nextQtr(31\1\1998) devuelve 30\4\1998.

Ejemplo

static void nextQtrExample(Args _arg)
{
    date d = nextQtr(today());

    print "Closest date next quarter is "
        + date2Str(d, 2, 2, -1, 2, -1, 4);
    pause;
}

próximo año

Recupera la fecha del año siguiente que se corresponde más estrechamente con la fecha especificada.

date nextYr(date date)

Parámetros

Parámetro Descripción
fecha La fecha para coincidir en el año siguiente.

Valor devuelto

La coincidencia más cercana a la fecha especificada que se encuentra en el año siguiente.

Notas

Por ejemplo, nextyr(29\2\1998) devuelve 28\2\1999.

Ejemplo

static void nextYrExample(Args _arg)
{
    date d = nextYr(today());

    print "Closest date next year is "
        + date2Str(d, 2, 2, -1, 2, -1, 4);
    pause;
}

AntMth

Recupera la fecha del mes anterior que se corresponde más estrechamente con la fecha especificada.

date prevMth(date date)

Parámetros

Parámetro Descripción
fecha La fecha que debe coincidir en el mes anterior.

Valor devuelto

La coincidencia más cercana a la fecha especificada que se encuentra en el mes anterior.

Notas

prevMth(31\3\1996); // Returns the date 29/02/1996 because 1996 is a leap year.
prevMth(28\2\1998); // Returns the date 28/01/1998.

anteriorQtr

Recupera la fecha del trimestre anterior que se corresponde más estrechamente con la fecha especificada.

date prevQtr(date date)

Parámetros

Parámetro Descripción
fecha La fecha para coincidir en el trimestre anterior.

Valor devuelto

La coincidencia más cercana a la fecha especificada que se encuentra en el trimestre anterior.

Notas

prevQtr(30\4\1998); // Returns the date 30/01/1998.
prevQtr(29\5\1996); // Returns the date 29/02/1996, because 1996 is a leap year.

año anterior

Recupera la fecha del año anterior que se corresponde más estrechamente con la fecha especificada.

date prevYr(date date)

Parámetros

Parámetro Descripción
fecha La fecha para coincidir en el año anterior.

Valor devuelto

La fecha más cercana a la especificada que el sistema encuentra en el año anterior.

Notas

prevYr(29\2\1996); //Returns the date 28/02/1995 because 1996 is a leap year.
prevYr(28\2\1998); //Returns the date 28/02/1997.

systemDateGet

Recupera la fecha de la sesión, si está fijada.

date systemDateGet()

Valor devuelto

La fecha de la sesión, si está fijada; de lo contrario, la fecha del sistema.

Notas

Utiliza la fecha y hora de la sesión en el menú de Herramientas para abrir la página de fecha y hora de la sesión. Utiliza esta página para fijar la fecha de la sesión. Después de que el sistema detecta esta acción de conjunto, las llamadas posteriores a la función systemDateGet devolven la fecha de sesión. La función today devuelve la fecha del sistema. Esta función no admite zonas horarias.

Ejemplo

En el ejemplo siguiente se muestra la fecha en la ventana Registro de información.

static void Job_systemDateGet(Args _arg)
{
    info( date2Str(
        systemDateGet(),        // X++ language function.
        321,                    // 321 = ymd
        DateDay::Digits2,
        DateSeparator::Hyphen,  // separator1
        DateMonth::Digits2,
        DateSeparator::Hyphen,  // separator2
        DateYear::Digits4
    )
);
/*********** Actual Infolog output
Message (03:46:00 pm)
2012-04-16
***********/
}

sistemaDateSet

Modifica la fecha del sistema.

date systemDateSet(date _date)

Parámetros

Parámetro Descripción
_fecha La nueva fecha para el sistema.

Valor devuelto

La nueva fecha del sistema.

Notas

Esta función no afecta a la fecha de la sesión. Este método cambia la fecha, pero la hora se establece en 0 (cero).

Ejemplo

En el ejemplo siguiente se establece la fecha del sistema en la fecha de hoy.

static void systemDateSetExample(Args _arg)
{
    date d = today();
    d = systemDateSet(d);
    print d;
}

tiempoAhora

Recupera la hora actual del sistema.

int timeNow()

Valor devuelto

El número de segundos que han pasado desde la medianoche.

Ejemplo

static void timeNowExample(Args _arg)
{
    int i = timeNow();

    print "The number of seconds since midnight is " + int2Str(i);
    pause;
}

Hoy

Recupera la fecha actual en el sistema.

date today()

Valor devuelto

La fecha actual.

Ejemplo

static void todayExample(Args _arg)
{
    date d = today();
    
    print "Today's date is " + date2Str(d, 0, 2, -1, 2, -1, 4);
    pause;
}

wkOfYr

Calcula la semana del año en la que cae una fecha, de acuerdo con la especificación ISO 8601.

int wkOfYr(date _date)

Parámetros

Parámetro Descripción
_fecha La fecha para la que se calcula la semana del año.

Valor devuelto

El número de secuencia de la semana en la que se produce el parámetro _date .

Ejemplo

En el ejemplo de código siguiente se compara la función wkOfYr con el método Global::weekOfYear . La función y el método producen resultados diferentes.

// X++ job, under AOT > Jobs.
static void WeekTests3Job(Args _args)
{
    int weekNum, i;
    date dateTest;
    str sMessages[];

    //---------------------------------------------
    sMessages[1] = "----- #1.  For Sunday, January 5, 2003 -----";
    dateTest = 512003; // DayMonthYear  format.
    weekNum = wkOfYr(dateTest);
    sMessages[2] = int2str(weekNum) + " = wkOfYr funtion";
    weekNum = Global::weekOfYear(dateTest);
    sMessages[3] = int2str(weekNum) + " = Global::weekOfYear method";
    
    //---------------------------------------------
    sMessages[4] = " ";
    sMessages[5] = "----- #2.  For Wednesday, August 20, 2003 -----";
    dateTest = 2082003;
    weekNum = wkOfYr(dateTest);
    sMessages[6] = int2str(weekNum) + " = wkOfYr funtion";
    weekNum = Global::weekOfYear(dateTest);
    sMessages[7] = int2str(weekNum) + " = Global::weekOfYear method";
    
    //---------------------------------------------
    sMessages[8] = " ";
    sMessages[9] = "----- #3.  For Sunday, December 28, 2003 -----";
    dateTest = 28122003;
    weekNum = wkOfYr(dateTest);
    sMessages[10] = int2str(weekNum) + " = wkOfYr funtion";
    weekNum = Global::weekOfYear(dateTest);
    sMessages[11] = int2str(weekNum) + " = Global::weekOfYear method";
    
    for (i=1; i<= 11; i++)
    {
        Global::info(sMessages[i]);
    }
}

El ejemplo anterior envía la siguiente información al Infolog para su exhibición. El resultado muestra que hay diferencias entre wkOfYr y Global::weekOfYear.

Message (01:59:13 pm) ----- 
#1. For Sunday, January 5, 2003 ----- 1 = wkOfYr function 2 = Global::weekOfYear method ----- 
#2. For Wednesday, August 20, 2003 ----- 34 = wkOfYr function 34 = Global::weekOfYear method ----- 
#3. For Sunday, December 28, 2003 ----- 52 = wkOfYr function 1 = Global::weekOfYear method

año

Recupera el año de un valor de fecha .

int year(date _date)

Parámetros

Parámetro Descripción
_fecha La fecha de regreso del año.

Valor devuelto

El año de la fecha especificada.

Notas

year(0221998); //Returns the value 1998.