Compartir a través de


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

Nota:

Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a Finance and Operations Viva Engage Community y elija la comunidad a la que desea unirse.

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

dayName

Recupera el nombre del día de la semana especificado por un número.

str dayName(int number)

Parámetros

Parámetro Description
number Número de un día de una semana.

Valor devuelto

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

Observaciones

Los valores válidos para el parámetro number son de 1 a 7. El lunes está representado por 1, martes por 2 y domingo por 7.

Example

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

dayOfMth

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

int dayOfMth(date date)

Parámetros

Parámetro Description
date Fecha para la que se va a devolver el día en el mes.

Valor devuelto

Entero entre 1 y 31 que indica el día del mes para la fecha especificada.

Observaciones

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

Example

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

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

dayOfWk

Calcula el número de días de la semana para la fecha especificada. Nota: El lunes está representado por 1, martes por 2 y domingo por 7.

int dayOfWk(date date)

Parámetros

Parámetro Description
date Valor de fecha que indica el año, el mes y el día.

Valor devuelto

Número del día especificado en la semana.

Example

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

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

dayOfYr

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

int dayOfYr(date _date)

Parámetros

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

Valor devuelto

Número de días comprendidos entre el 1 de enero y la fecha especificada, ambos incluidos.

Observaciones

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

Example

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

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

endMth

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

date endMth(date date)

Parámetros

Parámetro Description
date Valor de fecha que indica un año, mes y día.

Valor devuelto

Valor de fecha del último día del mes especificado.

Observaciones

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, mes y año, respectivamente.

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

Parámetros

Parámetro Description
día Entero que representa el día del mes.
month Entero que representa el mes del año.
año Entero que representa el año, que debe estar comprendido entre 1900 y 2154.

Valor devuelto

Valor de fecha que se basa en los valores de los parámetros day, month y year .

Observaciones

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

Example

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 Description
number Número del mes.

Valor devuelto

Nombre del mes especificado.

Observaciones

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

Example

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

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

mthOfYr

Recupera el número del mes del año para la fecha especificada. Nota: Enero es 1, febrero es 2 y diciembre es 12.

int mthOfYr(date date)

Parámetros

Parámetro Description
date Fecha que especifica un año, mes y día.

Valor devuelto

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

Example

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

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

nextMth

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

date nextMth(date date)

Parámetros

Parámetro Description
date Fecha que se va a coincidir en el mes siguiente.

Valor devuelto

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

Observaciones

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

Example

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

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

nextQtr

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

date nextQtr(date date)

Parámetros

Parámetro Description
date Fecha que se va a coincidir en el trimestre siguiente.

Valor devuelto

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

Observaciones

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

Example

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

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

nextYr

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

date nextYr(date date)

Parámetros

Parámetro Description
date Fecha que se va a 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.

Observaciones

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

Example

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

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

prevMth

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

date prevMth(date date)

Parámetros

Parámetro Description
date Fecha que se va a coincidir en el mes anterior.

Valor devuelto

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

Observaciones

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.

prevQtr

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

date prevQtr(date date)

Parámetros

Parámetro Description
date Fecha que se va a coincidir en el trimestre anterior.

Valor devuelto

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

Observaciones

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.

prevYr

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

date prevYr(date date)

Parámetros

Parámetro Description
date Fecha que se va a coincidir en el año anterior.

Valor devuelto

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

Observaciones

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 sesión, si se ha establecido.

date systemDateGet()

Valor devuelto

Fecha de sesión si se ha establecido; de lo contrario, la fecha del sistema.

Observaciones

Considere la posibilidad de usar la fecha y hora de sesión en el menú Herramientas para abrir la página Fecha y hora de la sesión . Esta página se puede usar para establecer activamente la fecha de sesión. Una vez detectada esta acción de conjunto por el sistema, las llamadas posteriores a la función systemDateGet devuelven la fecha de sesión. La función today devuelve la fecha del sistema. Esta función no admite zonas horarias.

Example

En el ejemplo siguiente se muestra la fecha en la ventana Infolog.

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
***********/
}

systemDateSet

Cambia la fecha del sistema.

date systemDateSet(date _date)

Parámetros

Parámetro Description
_fecha Nueva fecha del sistema.

Valor devuelto

La nueva fecha del sistema.

Observaciones

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

Example

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

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

timeNow

Recupera la hora actual del sistema.

int timeNow()

Valor devuelto

Número de segundos que han pasado desde medianoche.

Example

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

Fecha actual.

Example

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, según la especificación ISO 8601.

int wkOfYr(date _date)

Parámetros

Parámetro Description
_fecha Fecha para calcular la semana del año.

Valor devuelto

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

Example

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 generan 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]);
    }
}

En el ejemplo anterior se envió la siguiente información al infolog para su visualización. La salida 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 Description
_fecha Fecha desde la que se va a devolver el año.

Valor devuelto

Año de la fecha especificada.

Observaciones

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