Datumexekveringsfunktioner för X++

Anmärkning

Intressegrupper för communityn har nu flyttat från Yammer till Microsoft Viva Engage. Om du vill gå med i en Viva Engage-community och delta i de senaste diskussionerna fyller du i formuläret Begär åtkomst till Finance and Operations Viva Engage Community och väljer den community som du vill ansluta till.

I den här artikeln beskrivs funktionerna för körning av datum.

dayName

Hämtar namnet på den veckodag som anges av ett tal.

str dayName(int number)

Parameterar

Parameter Description
nummer Antalet dagar i veckan.

Returvärde

Veckodagen som anges av talparametern.

Anmärkningar

De giltiga värdena för talparametern är 1 till och med 7. Måndagen representeras av 1, tisdag med 2 och söndag med 7.

Example

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

dayOfMth

Beräknar antalet dagar i månaden för det angivna datumet.

int dayOfMth(date date)

Parameterar

Parameter Description
date Det datum för vilket dagen i månaden ska returneras.

Returvärde

Ett heltal mellan 1 och 31 som anger dagen i månaden för det angivna datumet.

Anmärkningar

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

Beräknar antalet dagar i veckan för det angivna datumet. Not: Måndagen representeras av 1, tisdag med 2 och söndag med 7.

int dayOfWk(date date)

Parameterar

Parameter Description
date Ett datumvärde som anger år, månad och dag.

Returvärde

Antalet angivna dagar i veckan.

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

Beräknar antalet dagar mellan den 1 januari och det angivna datumet.

int dayOfYr(date _date)

Parameterar

Parameter Description
_datum Ett datum som anger år, månad och dag.

Returvärde

Antalet dagar mellan den 1 januari och det angivna datumet, inklusive.

Anmärkningar

1 januari är 1 och 31 december är antingen 365 eller 366 beroende på om året är ett skottår.

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

Beräknar det sista datumet i månaden för det angivna datumet.

date endMth(date date)

Parameterar

Parameter Description
date Ett datumvärde som anger ett år, en månad och en dag.

Returvärde

Datumvärdet för den sista dagen i den angivna månaden.

Anmärkningar

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

Skapar ett datum baserat på tre heltal som anger dag, månad respektive år.

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

Parameterar

Parameter Description
dag Ett heltal som representerar dagen i månaden.
månad Ett heltal som representerar årets månad.
år Ett heltal som representerar året, som måste vara mellan 1900 och 2154.

Returvärde

Ett datumvärde som baseras på värdena för parametrarna dag, månad och år .

Anmärkningar

Om datumet inte är giltigt returnerar den här metoden ett datum på 0 (noll, 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

Hämtar namnet på den angivna månaden

str monthName(int number)

Parameterar

Parameter Description
nummer Månadens nummer.

Returvärde

Namnet på den angivna månaden.

Anmärkningar

De giltiga värdena för talparametern är 1 till 12. Januari representeras av 1 och december av 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

Hämtar numret på månaden under året för det angivna datumet. Not: Januari är 1, Februari är 2, och December är 12.

int mthOfYr(date date)

Parameterar

Parameter Description
date Ett datum som anger ett år, en månad och en dag.

Returvärde

Antalet månader under året, för den månad som representeras av datumparametern.

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

Hämtar datumet i följande månad som närmast motsvarar det angivna datumet.

date nextMth(date date)

Parameterar

Parameter Description
date Det datum som ska matchas under följande månad.

Returvärde

Den närmaste matchningen till det angivna datumet som hittas under nästa månad.

Anmärkningar

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

Hämtar datumet i följande kvartal som närmast motsvarar det angivna datumet.

date nextQtr(date date)

Parameterar

Parameter Description
date Det datum som ska matchas under följande kvartal.

Returvärde

Den närmaste matchningen till angivet datum som hittas under nästa kvartal.

Anmärkningar

NextQtr(31\1\1998) returnerar till exempel 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

Hämtar datumet följande år som närmast motsvarar det angivna datumet.

date nextYr(date date)

Parameterar

Parameter Description
date Det datum som ska matchas under följande år.

Returvärde

Den närmaste matchningen till det angivna datumet som finns följande år.

Anmärkningar

Nextyr(29\2\1998) returnerar till exempel 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

Hämtar datumet föregående månad som bäst motsvarar det angivna datumet.

date prevMth(date date)

Parameterar

Parameter Description
date Det datum som ska matchas föregående månad.

Returvärde

Den närmaste matchningen till det angivna datumet som hittades föregående månad.

Anmärkningar

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

Hämtar datumet i föregående kvartal som bäst motsvarar det angivna datumet.

date prevQtr(date date)

Parameterar

Parameter Description
date Det datum som ska matchas under föregående kvartal.

Returvärde

Den närmaste matchningen till det angivna datumet som hittades under föregående kvartal.

Anmärkningar

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

Hämtar datumet föregående år som närmast motsvarar det angivna datumet.

date prevYr(date date)

Parameterar

Parameter Description
date Det datum som ska matchas under föregående år.

Returvärde

Den närmaste matchningen till det angivna datumet som hittades föregående år.

Anmärkningar

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

Hämtar sessionsdatumet om det har angetts.

date systemDateGet()

Returvärde

Sessionsdatumet om det har angetts. i annat fall systemdatumet.

Anmärkningar

Överväg att använda sessionsdatum och tid på menyn Verktyg för att öppna sidan Sessionsdatum och tid . Den här sidan kan användas för att aktivt ange sessionsdatum. När den här set-åtgärden har identifierats av systemet returnerar efterföljande anrop till funktionen systemDateGet sessionsdatumet. Funktionen today returnerar systemdatumet. Den här funktionen stöder inte tidszoner.

Example

I följande exempel visas datumet i infolog-fönstret.

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

Ändrar systemdatumet.

date systemDateSet(date _date)

Parameterar

Parameter Description
_datum Det nya datumet för systemet.

Returvärde

Det nya systemdatumet.

Anmärkningar

Den här funktionen påverkar inte sessionsdatumet. Den här metoden ändrar datumet, men tiden anges till 0 (noll).

Example

I följande exempel anges systemdatumet till dagens datum.

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

timeNow

Hämtar den aktuella systemtiden.

int timeNow()

Returvärde

Antalet sekunder som har passerat sedan midnatt.

Example

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

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

I dag

Hämtar det aktuella datumet i systemet.

date today()

Returvärde

Aktuellt datum.

Example

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

wkOfYr

Beräknar den vecka på året som ett datum infaller, enligt ISO 8601-specifikationen.

int wkOfYr(date _date)

Parameterar

Parameter Description
_datum Datum för att beräkna veckan på året för.

Returvärde

Sekvensnumret för veckan som parametern _date inträffar i.

Example

I följande kodexempel jämförs funktionen wkOfYr med metoden Global::weekOfYear . Funktionen och metoden ger olika resultat.

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

I föregående exempel skickades följande information till Infolog för visning. Utdata visar att det finns skillnader mellan wkOfYr och 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

år

Hämtar året från ett datumvärde .

int year(date _date)

Parameterar

Parameter Description
_datum Datumet som året ska returneras från.

Returvärde

Året för det angivna datumet.

Anmärkningar

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