Anterior Siguiente

Clase BirtDuration

La clase BirtDuration proporciona funciones para obtener partes de períodos de tiempo, o duraciones, utilizadas en documentos XML. Las duraciones se especifican en el siguiente formato:

PnYnMnDTnHnMnS

Aquí,

*
*
nY indica el número de años
*
nM indica el número de meses
*
nD indica el número de días
*
*
nH indica el número de horas
*
nM indica el número de minutos
*
nS indica el número de segundos

Por ejemplo, el siguiente valor indica una duración de 2 años, 3 meses y 5 días:

P2Y3M5D

El siguiente valor indica una duración de 10 horas:

PT10H

La clase BirtDuration es estática. La aplicación no puede crear instancias de la clase.

BirtDuration.add

Esta función junta dos duraciones, y devuelve la suma.

Sintaxis

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Parámetros

lexicalDuration1

Serie. La primera duración a añadir.

lexicalDuration2

Serie. La segunda duración a añadir.

Devuelve

Serie. La suma de las dos duraciones de entrada.

Ejemplos

El ejemplo siguiente añade dos duraciones:

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

BirtDuration.addTo

Esta función añade una duración a un objeto de fecha especificado.

Sintaxis

Date BirtDuration.add(string lexicalDuration, Date date)

Parámetros

lexicalDuration

Serie. La duración a añadir.

date

Objeto de fecha. La fecha y hora a modificar.

Devuelve

Objeto de fecha. La fecha avanzada por la duración.

Ejemplos

El ejemplo siguiente añade un año a la fecha y hora de hoy:

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

BirtDuration.compare

Esta función prueba si una duración es igual, mayor que o menor que otra duración.

Sintaxis

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

Parámetros

lexicalDuration1

Serie. La primera duración a utilizar en la comparación.

lexicalDuration2

Serie. La segunda duración a utilizar en la comparación.

Devuelve

Entero. Relación de orden parcial entre las dos duraciones. Devuelve 1 si la primera duración es mayor, 0 si son iguales y -1 si la segunda duración es mayor.

Ejemplos

Las siguientes expresiones comparan las longitudes de duraciones específicas:

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

BirtDuration.day

Esta función devuelve el valor de días de una duración dada.

Sintaxis

integer BirtDuration.day( string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de días.

Devuelve

Un entero que representa el valor de días de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de día devueltos para duraciones específicas:

BirtDuration.day( "P1Y15DT12H" ) // devuelve 15
BirtDuration.day( "P5Y2M" ) // devuelve 0

BirtDuration.getSign

Esta función devuelve el signo de una duración.

Sintaxis

integer BirtDuration.getSign(string lexicalDuration)

Parámetros

lexicalDuration

Serie. La duración a analizar.

Devuelve

Entero. El signo de la duración como multiplicador. Devuelve 1 para una duración positiva, -1 para una duración negativa, y 0 para el valor nulo o 0.

Ejemplos

La expresión siguiente analiza los signos de una duración específica:

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

BirtDuration.hour

Esta función devuelve el valor de horas de una duración dada.

Sintaxis

integer BirtDuration.hour( string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de horas.

Devuelve

Un entero que representa el valor de horas de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de hora devueltos para duraciones específicas:

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

BirtDuration.isLongerThan

Esta función prueba si una duración es más larga que otra duración. A veces no puede determinarse la relación de orden entre determinadas duraciones, por ejemplo, un mes (P1M) y 30 días (P30D), o un año (P1Y) y 365 días (P365D). En casos como estos, la función devuelve false.

Sintaxis

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Parámetros

lexicalDuration1

Serie. La primera duración a utilizar en la comparación.

lexicalDuration2

Serie. La segunda duración a utilizar en la comparación.

Devuelve

Booleano. True si la primera duración es más larga que la segunda duración; de lo contrario, devuelve false.

Ejemplos

Las siguientes expresiones comparan las longitudes de duraciones específicas:

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

BirtDuration.isShorterThan

Esta función prueba si una duración es más corta que otra duración. A veces no puede determinarse la relación de orden entre determinadas duraciones, por ejemplo, un mes (P1M) y 30 días (P30D), o un año (P1Y) y 365 días (P365D). En casos como estos, la función devuelve false.

Sintaxis

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Parámetros

lexicalDuration1

Serie. La primera duración a utilizar en la comparación.

lexicalDuration2

Serie. La segunda duración a utilizar en la comparación.

Devuelve

Booleano. True si la primera duración es más corta que la segunda duración; de lo contrario, devuelve false.

Ejemplos

Las siguientes expresiones comparan las longitudes de duraciones específicas:

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

BirtDuration.minute

Esta función devuelve el valor de minutos de una duración dada.

Sintaxis

integer BirtDuration.minute(string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de minutos.

Devuelve

Entero. Un número que representa el valor de minutos de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de minutos devueltos para duraciones específicas:

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

BirtDuration.month

Esta función devuelve el valor de meses de una duración dada.

Sintaxis

integer BirtDuration.month(string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de meses.

Devuelve

Entero. Un número que representa el valor de meses de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de mes devueltos para duraciones específicas:

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

BirtDuration.multiply

Esta función devuelve el producto de una duración y un número regular.

Sintaxis

string BirtDuration.multiply(string lexicalDuration, integer factor)

Parámetro

lexicalDuration

Serie. Una duración a multiplicar.

factor

Entero. Un número normal por el que multiplicar.

Devuelve

Serie. El producto de la duración de entrada y el factor.

Ejemplos

Los ejemplos siguientes muestran los productos devueltos para una duración y un factor específicos:

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

BirtDuration.negate

Esta función devuelve el valor negativo de una duración.

Sintaxis

string BirtDuration.negate(string lexicalDuration)

Parámetro

lexicalDuration

Serie. Una duración a negar.

Devuelve

Serie. El valor negativo de la duración de entrada.

Ejemplos

Los ejemplos siguientes muestran el resultado negativo de una duración específica:

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

BirtDuration.second

Esta función devuelve el valor de segundos de una duración dada.

Sintaxis

integer BirtDuration.second(string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de segundos.

Devuelve

Entero. Un número que representa el valor de segundos de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de segundos devueltos para duraciones específicas:

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

BirtDuration.subtract

Esta función sustrae una duración de otra duración.

Sintaxis

string BirtDuration.subtract(string lexicalDuration1, string lexicalDuration2)

Parámetros

lexicalDuration1

Serie. La duración de la que sustraer.

lexicalDuration2

Serie. La duración restada de lexicalDuration1.

Devuelve

Serie. La diferencia entre las dos duraciones de entrada.

Ejemplos

El ejemplo siguiente resta dos duraciones:

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

BirtDuration.timeInMills

Esta función devuelve el número de milisegundos de una duración dada, desde una fecha inicial especificada. El número de milisegundos de una duración puede cambiar dependiendo de la fecha inicial. Por ejemplo, una duración de un mes puede ser de 28, 29, 30 o 31 días, dependiendo de la fecha inicial. Si la fecha de inicio es 1 de enero, la función calcula los milisegundos entre el 1 de enero y el 1 de febrero (excluyendo 1 de febrero), que equivale a 2678400000 milisegundos o a 31 días. Si la fecha inicial es el 1 de febrero de 2009 (un año bisiesto), la función calcula los milisegundos entre el 1 de febrero y el 1 de marzo, lo que equivale a 2505600000 milisegundos o 29 días.

Sintaxis

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Parámetros

lexicalDuration

Serie. Duración de la que se obtiene la longitud en milisegundos.

startDate

Objeto de fecha. Representa la fecha de inicio.

Devuelve

Objeto de número. El número de milisegundos en la duración especificada.

Ejemplos

Los ejemplos siguientes muestran el número de milisegundos devueltos para duraciones y fechas iniciales específicas:

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

BirtDuration.year

Esta función devuelve el valor de año de una duración dada.

Sintaxis

integer BirtDuration.year(string lexicalDuration)

Parámetro

lexicalDuration

Serie. Duración de la que obtener el valor de año.

Devuelve

Entero. Un número que representa el valor de año de la duración especificada.

Ejemplos

Los ejemplos siguientes muestran los valores de año devueltos para duraciones específicas:

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

(c) Copyright Actuate Corporation 2013