Compartilhar via


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

Observação

Grupos de interesse da comunidade mudaram do Yammer para o Microsoft Viva Engage. Para ingressar em uma comunidade do Viva Engage e participar das discussões mais recentes, preencha o formulário Solicitar acesso às Finanças e Operações viva engage community e escolha a comunidade que você deseja ingressar.

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

dayName

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 de número.

Observações

Os valores válidos para o parâmetro de número são de 1 a 7. Segunda-feira é representada por 1, terça-feira por 2, e 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 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 retornar o dia no mês.

Valor de retorno

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

dayOfWk

Calcula o número de dias da semana para a data especificada. Nota: Segunda-feira é representada por 1, terça-feira por 2, e domingo por 7.

int dayOfWk(date date)

Parâmetros

Parâmetro Description
date Um valor de data que indica o ano, o mês e o 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;
}

dayOfYr

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

int dayOfYr(date _date)

Parâmetros

Parâmetro Description
_data Uma data que especifica o ano, o mês e o 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, um mês e um dia.

Valor de retorno

O valor da 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
dia Um inteiro que representa o dia do mês.
month Um inteiro que representa o mês do ano.
ano Um 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 de 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 de número são de 1 a 12. Janeiro é representado por 1 e 12 de dezembro.

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. Nota: Janeiro é 1, fevereiro é 2, e dezembro é 12.

int mthOfYr(date date)

Parâmetros

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

Valor de retorno

O número do mês no ano, para o mês representado pelo parâmetro de data .

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 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 ser correspondida no mês seguinte.

Valor de retorno

A correspondência mais próxima à data especificada encontrada no próximo mês.

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

nextQtr

Recupera a data no trimestre a seguir que corresponde mais de perto à data especificada.

date nextQtr(date date)

Parâmetros

Parâmetro Description
date A data a ser correspondida no trimestre a seguir.

Valor de retorno

A correspondência mais próxima da data especificada 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;
}

nextYr

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 ser correspondida no ano seguinte.

Valor de retorno

A correspondência mais próxima à data especificada 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 ser correspondida no mês anterior.

Valor de retorno

A correspondência mais próxima à 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 no trimestre anterior que corresponde mais de perto à data especificada.

date prevQtr(date date)

Parâmetros

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

Valor de retorno

A correspondência mais próxima à 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 no ano anterior que corresponde mais de perto à data especificada.

date prevYr(date date)

Parâmetros

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

Valor de retorno

A correspondência mais próxima à 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.

systemDateGet

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

date systemDateGet()

Valor de retorno

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

Observações

Considere usar a data e a hora da sessão no menu Ferramentas para abrir a página de 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 for detectada pelo sistema, as chamadas subsequentes para a função systemDateGet retornarão a data da sessão. A função de hoje retorna a data do sistema. Essa função não dá suporte a fusos horários.

Example

O exemplo a seguir mostra a data na janela do 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
_data A nova data do sistema.

Valor de retorno

A nova data do sistema.

Observações

Essa função não afeta a data da sessão. Esse 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;
}

timeNow

Recupera a hora atual do sistema.

int timeNow()

Valor de retorno

O número de segundos que se 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
_data A data para a qual calcular a semana do ano.

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
_data A data da qual retornar o ano.

Valor de retorno

O ano da data especificada.

Observações

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