Anterior Seguinte

Classe BirtDuration

A classe BirtDuration faculta funções para obter partes de períodos de tempo ou durações utilizadas em documentos XML. As durações são especificadas do seguinte modo:

PnYnMnDTnHnMnS

onde:

*
*
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 seguinte valor 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. A aplicação não pode criar ocorrências da classe.

BirtDuration.add

Esta função adicionar duas durações em conjunto e devolve a soma.

Sintaxe

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

String. A primeira duração a adicionar.

lexicalDuration2

String. A segunda duração a adicionar.

Devoluções

String. A soma das duas durações de entrada.

Exemplos

O exemplo seguinte adiciona duas durações:

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

BirtDuration.addTo

Esta função adiciona uma duração a um objecto Data especificado

Sintaxe

Date BirtDuration.add(string lexicalDuration, Date date)

Parâmetros

lexicalDuration

String. A duração a adicionar.

date

Date object. A data e hora a modificar.

Devoluções

Date object. A data avançada pela duração.

Exemplos

O exemplo seguinte adiciona um ano à 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, superior ou inferior a uma outra duração.

Sintaxe

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

String. A primeira duração a utilizar na comparação.

lexicalDuration2

String. A segunda duração a utilizar na comparação.

Devoluções

Integer. Relação de ordem parcial entre duas durações. Devolve 1 se a primeira duração for superior, 0 se forem iguais e -1 se a segunda duração for superior.

Exemplos

As seguintes expressões comparam os comprimentos de durações específicas:

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

BirtDuration.day

Esta função devolve o valor de dias de uma determinada duração.

Sintaxe

integer BirtDuration.day( string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para dias.

Devoluções

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

Exemplos

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

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

BirtDuration.getSign

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

Sintaxe

integer BirtDuration.getSign(string lexicalDuration)

Parâmetros

lexicalDuration

String. A duração a analisar.

Devoluções

Integer. O sinal da duração como um multiplicador. Devolve 1 para uma duração positiva, -1 para uma duração negativa e 0 para nulo ou valor 0.

Exemplos

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

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

BirtDuration.hour

Esta função devolve o valor de horas de uma determinada duração.

Sintaxe

integer BirtDuration.hour( string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para as horas.

Devoluções

Um número inteiro que apresenta o valor das horas da duração especificada.

Exemplos

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

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

BirtDuration.isLongerThan

Esta função testa se uma duração é maior do que outra duração. Por vezes, a relação de ordem entre determinadas durações não pode ser determinada como, por exemplo, um mês (P1M) e 30 dias (P30D) ou um ano (P1Y) e 365 dias (P365D). Nestes casos, a função devolve falso.

Sintaxe

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Parâmetros

lexicalDuration1

String. A primeira duração a utilizar na comparação.

lexicalDuration2

String. A segunda duração a utilizar na comparação.

Devoluções

Boolean. Verdadeiro se a primeira duração for superior à segunda duração; caso contrário devolve falso.

Exemplos

As seguintes expressões comparam os comprimentos de durações específicas:

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

BirtDuration.isShorterThan

Esta função testa se uma duração é menor do que outra duração. Por vezes, a relação de ordem entre determinadas durações não pode ser determinada como, por exemplo, um mês (P1M) e 30 dias (P30D) ou um ano (P1Y) e 365 dias (P365D). Nestes casos, a função devolve falso.

Sintaxe

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Parâmetros

lexicalDuration1

String. A primeira duração a utilizar na comparação.

lexicalDuration2

String. A segunda duração a utilizar na comparação.

Devoluções

Boolean. Verdadeiro se a primeira duração for inferior à segunda duração; caso contrário, devolve falso.

Exemplos

As seguintes expressões comparam os comprimentos de durações específicas:

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

BirtDuration.minute

Esta função devolve o valor de minutos de uma determinada duração.

Sintaxe

integer BirtDuration.minute(string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para minutos.

Devoluções

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

Exemplos

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

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

BirtDuration.month

Esta função devolve o valor de meses de uma determinada duração.

Sintaxe

integer BirtDuration.month(string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para meses.

Devoluções

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

Exemplos

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

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

BirtDuration.multiply

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

Sintaxe

string BirtDuration.multiply(string lexicalDuration, integer factor)

Parâmetro

lexicalDuration

String. Uma duração a multiplicar.

factor

Integer. Um número regular a multiplicar.

Devoluções

String. O produto da duração de entrada e o factor.

Exemplos

Os seguintes exemplos mostram os produtos devolvidos para uma duração específica e factor:

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

BirtDuration.negate

Esta função devolve um valor negativo de uma duração.

Sintaxe

string BirtDuration.negate(string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a negar.

Devoluções

String. O valor negativo da duração de entrada.

Exemplos

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

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

BirtDuration.second

Esta função devolve o valor de segundos de uma determinada duração.

Sintaxe

integer BirtDuration.second(string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para segundos.

Devoluções

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

Exemplos

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

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

BirtDuration.subtract

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

Sintaxe

string BirtDuration.subtract(string lexicalDuration1, string lexicalDuration2)

Parâmetros

lexicalDuration1

String. A duração a partir da qual subtrair.

lexicalDuration2

String. A duração subtraída de lexicalDuration1.

Devoluções

String. A diferença entre duas durações de entrada.

Exemplos

O exemplo seguinte subtrai as duas durações:

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

BirtDuration.timeInMills

Esta função devolve o número de milissegundos numa determinada duração de uma data inicial especificada. O número de milissegundos numa duração que pode mudar dependendo da data inicial. Por exemplo, uma duração de um mês pode ter 28, 29, 30 ou 31 dias, dependendo da data inicial. Caso a data inicial seja 1 de Janeiro, a função calcula os milissegundos entre 1 de Janeiro e 1 de Fevereiro (excluindo 1 de Fevereiro), o que equivale a 2678400000 milissegundos ou 31 dias. Caso a data inicial seja 1 de Fevereiro de 2009 (um ano bissexto), a função calcula os milissegundos entre 1 de Fevereiro e 1 de Março, o que equivale a 2505600000 milissegundos ou 29 dias.

Sintaxe

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Parâmetros

lexicalDuration

String. A duração da qual obter a extensão em milissegundos.

startDate

Date object. Representa a data de início.

Devoluções

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

Exemplos

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

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

BirtDuration.year

Esta função devolve o valor de ano de uma determinada duração.

Sintaxe

integer BirtDuration.year(string lexicalDuration)

Parâmetro

lexicalDuration

String. Uma duração a partir da qual obter o valor para ano.

Devoluções

Integer. Um número que representa o valor para ano da duração especificada.

Exemplos

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

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

(c) Copyright Actuate Corporation 2013