Anterior Avançar

Classe BirtDuration

A classe BirtDuration fornece funções para obter partes de períodos de tempo, ou durações, usados em documentos XML. As durações são especificadas no seguinte formato:

PnYnMnDTnHnMnS

em que:

*
*
nY indica o número de anos
*
nM indica o número de meses
*
nD indica o número de dias
*
*
nH indica o número de horas
*
nM indica o número de minutos
*
nS indica o número de segundos

Por exemplo, o valor a seguir indica uma duração de 2 anos, 3 meses e 5 dias:

P2Y3M5D

O seguinte valor indica uma duração de 10 horas:

PT10H

A classe BirtDuration é estática. O aplicativo não pode criar instâncias da classe.

BirtDuration.add

Esta função inclui duas durações juntas e retorna a soma.

Sintaxe

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

Sequência. A primeira duração a incluir.

lexicalDuration2

Sequência. A segunda duração a incluir.

Retornos

Sequência. A soma das duas durações de entrada.

Exemplos

O exemplo a seguir inclui duas durações:

BirtDuration.add("P1Y3M", "P13M") // returns P2Y4M

BirtDuration.addTo

Esta função inclui uma duração em um Objeto de data especificado.

Sintaxe

Date BirtDuration.add(string lexicalDuration, Date date)

Parâmetros

lexicalDuration

Sequência. A duração a incluir.

data

Objeto de data. A data e hora a modificar.

Retornos

Objeto de data. A data avançada pela duração.

Exemplos

O exemplo a seguir inclui um ano na data e hora de hoje:

var today = new Date();
var annualDate = BirtDuration.addTo(today, "P1Y")

BirtDuration.compare

Esta função testa se uma duração é igual, maior ou menor que outra duração.

Sintaxe

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

Sequência. A primeira duração a usar na comparação.

lexicalDuration2

Sequência. A segunda duração a usar na comparação.

Retornos

Número Inteiro. Relação de ordem parcial entre duas durações. Retorna 1 se a primeira duração for maior, 0 se for igual e -1 se a segunda duração for maior.

Exemplos

As seguintes expressões comparam as durações específicas:

BirtDuration.compare("P1Y", "P12M"); // returns 0
BirtDuration.compare( "P3M" , "P100D" ) // returns -1
BirtDuration.compare( "PT25H" , "P1D" ) // returns 1

BirtDuration.day

Esta função retorna o valor de dias de uma duração específica.

Sintaxe

integer BirtDuration.day( string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual se obtém o dia.

Retornos

Um número inteiro que representa o valor de dias da duração especificada.

Exemplos

Os seguintes valores mostram os valores de dias retornados para durações específicas:

BirtDuration.day( "P1Y15DT12H" ) // retorna 15
BirtDuration.day( "P5Y2M" ) // returns 0

BirtDuration.getSign

Esta função retorna o sinal de uma duração.

Sintaxe

integer BirtDuration.getSign(string lexicalDuration)

Parâmetros

lexicalDuration

Sequência. A duração a analisar.

Retornos

Número Inteiro. O sinal da duração como um multiplicador. Retorna 1 para uma duração positiva, -1 para uma duração negativa e 0 para nulo ou valor 0.

Exemplos

A expressão a seguir analisa os sinais de uma duração específica:

BirtDuration.getSign("P0Y"); // returns 0
BirtDuration.getSign("-P8Y2M3D"); // returns -1

BirtDuration.hour

Esta função retorna o valor de horas de uma duração específica.

Sintaxe

integer BirtDuration.hour( string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual obter o valor de horas.

Retornos

Um número inteiro que representa o valor de horas da duração especificada.

Exemplos

Os seguintes exemplos mostram os valores de horas retornados para durações específicas:

BirtDuration.hour( "P1Y15DT12H" ) // retorna 12
BirtDuration.hour( "P5Y2M" ) // retorna 0

BirtDuration.isLongerThan

Esta função testará se uma duração demora mais que outra. Às vezes, o relacionamento de ordem entre algumas durações não pode ser determinado, por exemplo, um mês (P1M) e 30 dias (P30D), ou um ano (P1Y) e 365 dias (P365D). Em casos como estes, a função retorna false.

Sintaxe

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Parâmetros

lexicalDuration1

Sequência. A primeira duração a usar na comparação.

lexicalDuration2

Sequência. A segunda duração a usar na comparação.

Retornos

Booleano. True se a primeira duração for mais longa que a segunda; caso contrário, retorna false.

Exemplos

As seguintes expressões comparam as durações específicas:

BirtDuration.isLongerThan( "P1Y3M" , "P13M" ) // retorna true
BirtDuration.isLongerThan( "P2M" , "P62D" ) // retorna false
BirtDuration.isLongerThan( "PT25H" , "P1D" ) // retorna true

BirtDuration.isShorterThan

Esta função testará se uma duração será mais curta que outra. Às vezes, o relacionamento de ordem entre algumas durações não pode ser determinado, por exemplo, um mês (P1M) e 30 dias (P30D), ou um ano (P1Y) e 365 dias (P365D). Em casos como estes, a função retorna false.

Sintaxe

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Parâmetros

lexicalDuration1

Sequência. A primeira duração a usar na comparação.

lexicalDuration2

Sequência. A segunda duração a usar na comparação.

Retornos

Booleano. True se a primeira duração for mais curta que a segunda; caso contrário, retorna false.

Exemplos

As seguintes expressões comparam as durações específicas:

BirtDuration.isShorterThan( "P1Y3M" , "P13M" ) // retorna false
BirtDuration.isShorterThan( "P2M" , "P62D" ) // retorna false
BirtDuration.isShorterThan( "PT25H" , "P1D" ) // retorna false
BirtDuration.isShorterThan( "P27D" , "P1M" ) // retorna true

BirtDuration.minute

Esta função retorna o valor de minutos de uma duração específica.

Sintaxe

integer BirtDuration.minute(string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual obter um valor de minutos.

Retornos

Número Inteiro. Um número que representa o valor de minutos da duração especificada.

Exemplos

Os seguintes exemplos mostram os valores de minutos retornados para durações específicas:

BirtDuration.minute( "P1Y15DT12H30M45S" ) // retorna 30
BirtDuration.minute( "P5Y2M8DT15H" ) // retorna 0

BirtDuration.month

Esta função retorna o valor de meses de uma duração específica.

Sintaxe

integer BirtDuration.month(string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual obter o valor de meses.

Retornos

Número Inteiro. Um número que representa o valor de meses da duração especificada.

Exemplos

Os seguintes exemplos mostram os valores de meses retornados para durações específicas:

BirtDuration.month( "P1Y3M15DT12H30M45S" ) // retorna 3
BirtDuration.month( "P5Y8DT15H" ) // retorna 0

BirtDuration.multiply

Esta função retorna o produto de uma duração e um número regular.

Sintaxe

string BirtDuration.multiply(string lexicalDuration, integer factor)

Parâmetro

lexicalDuration

Sequência. Uma duração a multiplicar.

fator

Número Inteiro. Um número regular a multiplicar.

Retornos

Sequência. O produto da duração de entrada e o fator.

Exemplos

Os exemplos a seguir mostram os produtos retornados para uma duração e fator específicos:

BirtDuration.multiply( "P1Y3M15DT12H30M45S", 1)
// returns P1Y3M15DT12H30M45S
BirtDuration.multiply( "P5Y8DT15H", 0) // returns P0Y0DT0H

BirtDuration.negate

Esta função retorna o valor negativo de uma duração.

Sintaxe

string BirtDuration.negate(string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a negar.

Retornos

Sequência. O valor negativo da duração de entrada.

Exemplos

Os exemplos a seguir mostram o resultado negativo de uma duração específica:

BirtDuration.negate( "P1Y3M15DT12H30M45S")
// returns -P1Y3M15DT12H30M45S

BirtDuration.second

Esta função retorna o valor de segundos de uma duração específica.

Sintaxe

integer BirtDuration.second(string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual obter o valor de segundos.

Retornos

Número Inteiro. Um número que representa o valor de segundos da duração especificada.

Exemplos

Os seguintes exemplos mostram os valores de segundos retornados para durações específicas:

BirtDuration.second( "P1Y3M15DT12H30M45S" ) // retorna 5
BirtDuration.second( "P5Y8DT15H" ) // retorna 0

BirtDuration.subtract

Esta função subtrai uma duração de outra duração.

Sintaxe

string BirtDuration.subtract(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

Sequência. A duração para subtrair.

lexicalDuration2

Sequência. A duração subtraída de lexicalDuration1.

Retornos

Sequência. A diferença das duas durações de entrada.

Exemplos

O exemplo a seguir subtrai duas durações:

BirtDuration.subtract("P1Y3M", "P13M") // returns P0Y2M

BirtDuration.timeInMills

Esta função retorna o número de milissegundos em uma determinada duração, a partir de uma data de início especificada. O número de milissegundos em uma duração pode ser alterado, dependendo da data de início. Por exemplo, uma duração de um mês pode ser 28, 29, 30 ou 31 dias, dependendo da data de início. Se a data de início for 1 de janeiro, a função calculará os milissegundos entre 1 de janeiro e 1 de fevereiro (excluindo 1 de fevereiro), que é igual a 2678400000 milissegundos ou 31 dias. Se a data de início for 1 de fevereiro de 2009 (um ano bissexto), a função calculará os milissegundos entre 1 de fevereiro e 1 de março, que é igual a 2505600000 milissegundos ou 29 dias.

Sintaxe

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Parâmetros

lexicalDuration

Sequência. Uma duração cuja duração em milissegundos será obtida.

startDate

Objeto de data. Representa a data de início.

Retornos

Objeto de número. O número de milissegundos na duração especificada.

Exemplos

Os exemplos a seguir mostram o número de milissegundos retornados para durações e datas de início específicas:

BirtDuration.timeInMills( "P1Y3M10D" , "2009-01-01" ) // retorna 40172400000
BirtDuration.timeInMills( "P1Y3M10D" , "2008-01-01" ) // retorna 40258800000
BirtDuration.timeInMills( "PT6H45M20S" , "2009-01-01" ) // retorna 24320000

BirtDuration.year

Esta função retorna o valor de ano de uma duração específica.

Sintaxe

integer BirtDuration.year(string lexicalDuration)

Parâmetro

lexicalDuration

Sequência. Uma duração a partir da qual obter o valor de ano.

Retornos

Número Inteiro. Um número que representa o valor de ano da duração especificada.

Exemplos

Os seguintes exemplos mostram os valores de anos retornados para durações específicas:

BirtDuration.year( "P1Y3M15DT12H30M45S" ) // retorna 1
BirtDuration.year( "P8DT15H" ) // retorna 0

(c) Copyright Actuate Corporation 2013