Partilhar via


Funções X++ de tempo de execução de data

Observação

Os grupos de interesse da comunidade passaram do Yammer para o Microsoft Viva Engage. Para participar de uma comunidade Viva Engage e participar das últimas discussões, preencha o formulário Solicitar acesso ao Finance and Operations Viva Engage Community e escolha a comunidade à qual deseja participar.

Este artigo descreve as funções de tempo de execução de data.

nome do dia

Recupera o nome do dia da semana especificado por um número.

str dayName(int number)

Parâmetros

Parâmetro Description
número O número de um dia em uma semana.

Valor de retorno

O dia da semana especificado pelo parâmetro number.

Observações

Os valores válidos para o parâmetro number são de 1 a 7. A segunda-feira é representada por 1, a terça-feira por 2 e o domingo por 7.

Example

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

diaOfMth

Calcula o número do dia no mês para a data especificada.

int dayOfMth(date date)

Parâmetros

Parâmetro Description
date A data para a qual devolver o dia no mês.

Valor de retorno

Um número inteiro entre 1 e 31 que indica o dia do mês para a data especificada.

Observações

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;
}

diaOfWk

Calcula o número de dias na semana para a data especificada. Observação: A segunda-feira é representada por 1, a terça-feira por 2 e o domingo por 7.

int dayOfWk(date date)

Parâmetros

Parâmetro Description
date Um valor de data que indica o ano, mês e dia.

Valor de retorno

O número do dia especificado na 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;
}

diaOfYr

Calcula o número de dias entre 1º de janeiro e a data especificada.

int dayOfYr(date _date)

Parâmetros

Parâmetro Description
_date Uma data que especifica o ano, mês e dia.

Valor de retorno

O número de dias entre 1 de janeiro e a data especificada, inclusive.

Observações

1 de janeiro é 1, e 31 de dezembro é 365 ou 366 , dependendo se o ano é um ano bissexto.

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 a última data no mês da data especificada.

date endMth(date date)

Parâmetros

Parâmetro Description
date Um valor de data que indica um ano, mês e dia.

Valor de retorno

O valor de data do último dia no mês especificado.

Observações

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

Cria uma data, com base em três inteiros que indicam o dia, o mês e o ano, respectivamente.

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

Parâmetros

Parâmetro Description
day Um inteiro que representa o dia do mês.
mês Um inteiro que representa o mês do ano.
ano Um número inteiro que representa o ano, que deve estar entre 1900 e 2154.

Valor de retorno

Um valor de data baseado nos valores dos parâmetros dia, mês e ano .

Observações

Se a data não for válida, esse método retornará uma data 0 (zero, 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 o nome do mês especificado

str monthName(int number)

Parâmetros

Parâmetro Description
número O número do mês.

Valor de retorno

O nome do mês especificado.

Observações

Os valores válidos do parâmetro number são de 1 a 12. Janeiro é representado por 1 e dezembro 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 o número do mês no ano para a data especificada. Observação: Janeiro é 1, fevereiro é 2 e dezembro é 12.

int mthOfYr(date date)

Parâmetros

Parâmetro Description
date Uma data que especifica um ano, mês e dia.

Valor de retorno

O número do mês no ano, para o mês que é representado pelo 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;
}

próximoMth

Recupera a data no mês seguinte que corresponde mais de perto à data especificada.

date nextMth(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no mês seguinte.

Valor de retorno

A correspondência mais próxima da data especificada encontrada no mês seguinte.

Observações

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;
}

próximoQtr

Recupera a data no trimestre seguinte que corresponde mais estreitamente à data especificada.

date nextQtr(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no trimestre seguinte.

Valor de retorno

A correspondência mais próxima da data especificada que é encontrada no próximo trimestre.

Observações

Por exemplo, nextQtr(31\1\1998) retorna 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;
}

próximoAno

Recupera a data no ano seguinte que corresponde mais de perto à data especificada.

date nextYr(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no ano seguinte.

Valor de retorno

A correspondência mais próxima da data especificada que é encontrada no ano seguinte.

Observações

Por exemplo, nextyr(29\2\1998) retorna 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 a data no mês anterior que corresponde mais de perto à data especificada.

date prevMth(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no mês anterior.

Valor de retorno

A correspondência mais próxima da data especificada encontrada no mês anterior.

Observações

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 a data do trimestre anterior que corresponde mais de perto à data especificada.

date prevQtr(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no trimestre anterior.

Valor de retorno

A correspondência mais próxima da data especificada encontrada no trimestre anterior.

Observações

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 a data do ano anterior que corresponde mais de perto à data especificada.

date prevYr(date date)

Parâmetros

Parâmetro Description
date A data a coincidir no ano anterior.

Valor de retorno

A correspondência mais próxima da data especificada encontrada no ano anterior.

Observações

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.

systemDateObter

Recupera a data da sessão, se ela tiver sido definida.

date systemDateGet()

Valor de retorno

A data da sessão, se tiver sido definida; caso contrário, a data do sistema.

Observações

Considere usar Data e hora da sessão no menu Ferramentas para abrir a página Data e hora da sessão . Esta página pode ser usada para definir ativamente a data da sessão. Depois que essa ação definida é detetada pelo sistema, as chamadas subsequentes para a função systemDateGet retornam a data da sessão. A função today retorna a data do sistema. Esta função não suporta fusos horários.

Example

O exemplo a seguir mostra a data na janela 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

Altera a data do sistema.

date systemDateSet(date _date)

Parâmetros

Parâmetro Description
_date A nova data para o sistema.

Valor de retorno

A nova data do sistema.

Observações

Esta função não afeta a data da sessão. Este método altera a data, mas a hora será definida como 0 (zero).

Example

O exemplo a seguir define a data do sistema como a data de hoje.

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

timeAgora

Recupera a hora atual do sistema.

int timeNow()

Valor de retorno

O número de segundos que passaram desde a meia-noite.

Example

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

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

Hoje

Recupera a data atual no sistema.

date today()

Valor de retorno

A data atual.

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 a semana do ano em que uma data cai, de acordo com a especificação ISO 8601.

int wkOfYr(date _date)

Parâmetros

Parâmetro Description
_date A data para calcular a semana do ano para.

Valor de retorno

O número de sequência da semana em que o parâmetro _date ocorre.

Example

O exemplo de código a seguir compara a função wkOfYr com o método Global::weekOfYear . A função e o método produzem 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]);
    }
}

O exemplo anterior enviou as seguintes informações para o Infolog para exibição. A saída mostra que há diferenças entre wkOfYr e 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

ano

Recupera o ano de um valor de data .

int year(date _date)

Parâmetros

Parâmetro Description
_date A data de retorno do ano.

Valor de retorno

O ano da data especificada.

Observações

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