Předchozí Další

Třída BirtDuration

Třída BirtDuration poskytuje funkce pro získávání částí časových období nebo trvání použitých v dokumentech XML. Trvání se zadávají v tomto tvaru:

PnYnMnDTnHnMnS

Kde:

*
*
nY označuje počet let
*
nM označuje počet měsíců
*
nD označuje počet dnů
*
*
nH označuje počet hodin
*
nM označuje počet minut
*
nS označuje počet sekund

Například následující hodnota označuje trvání o délce 2 roky, 3 měsíce a 5 dnů:

P2Y3M5D

Následující hodnota označuje trvání 10 hodin:

PT10H

Třída BirtDuration je statická. Aplikace nemůže vytvořit instance této třídy.

BirtDuration.add

Tato funkce sečte dvě trvání a vrátí jejich součet.

Syntaxe

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Parametry

lexikální_trvání_1

Hodnota typu String. První trvání, které se má sečíst.

lexikální_trvání_2

Hodnota typu String. Druhé trvání, které se má sečíst.

Vrací

Hodnota typu String. Součet obou vstupních trvání.

Příklady

V následujícím příkladu jsou sečtena dvě trvání:

BirtDuration.add("P1Y3M", "P13M") // vrací P2Y4M

BirtDuration.addTo

Tato funkce přičte trvání k zadanému objektu typu Date.

Syntaxe

Date BirtDuration.add(string lexikální_trvání, Date datum)

Parametry

lexikální_trvání

Hodnota typu String. Trvání, které se má přičíst.

datum

Objekt typu Date. Datum a čas k úpravě.

Vrací

Objekt typu Date. Datum rozšířené o trvání.

Příklady

V následujícím příkladu je k dnešnímu datu a času přičten jeden rok:

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

BirtDuration.compare

Tato funkce testuje, zda je trvání stejné, delší nebo kratší než jiné trvání.

Syntaxe

integer BirtDuration.compare(string lexikální_trvání_1, string lexikální_trvání_2)

Parametry

lexikální_trvání_1

Hodnota typu String. První trvání, které se má použít k porovnání.

lexikální_trvání_2

Hodnota typu String. Druhé trvání, které se má použít k porovnání.

Vrací

Hodnota typu Integer. Dílčí vztah pořadí mezi oběma trváními. Vrací hodnotu 1, pokud je delší první trvání, hodnotu 0, pokud jsou obě trvání shodná, a hodnotu -1, pokud je delší druhé trvání.

Příklady

Následující výrazy porovnávají délky specifických trvání:

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

BirtDuration.day

Tato funkce vrací hodnotu dnů pro dané trvání.

Syntaxe

integer BirtDuration.day( string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota dnů.

Vrací

Celé číslo představující hodnotu dnů zadaného trvání.

Příklady

Následující příklad uvádí hodnoty dnů vracené pro specifické trvání:

BirtDuration.day( "P1Y15DT12H" ) // vrací 15
BirtDuration.day( "P5Y2M" ) // vrací 0

BirtDuration.getSign

Tato funkce vrací znaménko trvání.

Syntaxe

integer BirtDuration.getSign(string lexikální_trvání)

Parametry

lexikální_trvání

Hodnota typu String. Trvání, které se má analyzovat.

Vrací

Hodnota typu Integer. Znaménko trvání jako násobitel. Vrátí hodnotu 1 pro kladné trvání, hodnotu -1 pro záporné trvání a hodnotu 0 pro hodnotu Null nebo 0.

Příklady

Následující výraz analyzuje znaménka specifického trvání:

BirtDuration.getSign("P0Y"); // vrací hodnotu 0
BirtDuration.getSign("-P8Y2M3D"); // vrací hodnotu -1

BirtDuration.hour

Tato funkce vrací hodnotu hodin pro dané trvání.

Syntaxe

integer BirtDuration.hour( string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota hodin.

Vrací

Celé číslo představující hodnotu hodin zadaného trvání.

Příklady

Následující příklad uvádí hodnoty hodin vracené pro specifické trvání:

BirtDuration.hour( "P1Y15DT12H" ) // vrací 12
BirtDuration.hour( "P5Y2M" ) // vrací 0

BirtDuration.isLongerThan

Tato funkce testuje, zda je trvání delší než jiné trvání. V určitých situacích vztah větší/menší mezi určitými trváními nelze určit, například jeden měsíc (P1M) a 30 dnů (P30D) nebo jeden rok (P1Y) a 365 dnů (P365D). V takových případech funkce vrátí hodnotu false.

Syntaxe

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Parametry

lexikální_trvání_1

Hodnota typu String. První trvání, které se má použít k porovnání.

lexikální_trvání_2

Hodnota typu String. Druhé trvání, které se má použít k porovnání.

Vrací

Hodnota typu Boolean. Hodnota true, je-li první trvání delší než druhé trvání, jinak vrací hodnotu false.

Příklady

Následující výrazy porovnávají délky specifických trvání:

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

BirtDuration.isShorterThan

Tato funkce testuje, zda je trvání kratší než jiné trvání. V určitých situacích vztah větší/menší mezi určitými trváními nelze určit, například jeden měsíc (P1M) a 30 dnů (P30D) nebo jeden rok (P1Y) a 365 dnů (P365D). V takových případech funkce vrátí hodnotu false.

Syntaxe

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Parametry

lexikální_trvání_1

Hodnota typu String. První trvání, které se má použít k porovnání.

lexikální_trvání_2

Hodnota typu String. Druhé trvání, které se má použít k porovnání.

Vrací

Hodnota typu Boolean. Hodnota true, je-li první trvání kratší než druhé trvání, jinak vrací hodnotu false.

Příklady

Následující výrazy porovnávají délky specifických trvání:

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

BirtDuration.minute

Tato funkce vrací hodnotu minut pro dané trvání.

Syntaxe

integer BirtDuration.minute(string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota minut.

Vrací

Hodnota typu Integer. Číslo představující hodnotu minut zadaného trvání.

Příklady

Následující příklad uvádí hodnoty minut vracené pro specifické trvání:

BirtDuration.minute( "P1Y15DT12H30M45S" ) // vrací 30
BirtDuration.minute( "P5Y2M8DT15H" ) // vrací 0

BirtDuration.month

Tato funkce vrací hodnotu měsíců pro dané trvání.

Syntaxe

integer BirtDuration.month(string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota měsíců.

Vrací

Hodnota typu Integer. Číslo představující hodnotu měsíců zadaného trvání.

Příklady

Následující příklad uvádí hodnoty měsíců vracené pro specifické trvání:

BirtDuration.month( "P1Y3M15DT12H30M45S" ) // vrací 3
BirtDuration.month( "P5Y8DT15H" ) // vrací 0

BirtDuration.multiply

Tato funkce vrací součin trvání a regulárního čísla.

Syntaxe

string BirtDuration.multiply(string lexikální_trvání, integer součinitel)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, které se má vynásobit.

součinitel

Hodnota typu Integer. Regulární číslo, které se má vynásobit.

Vrací

Hodnota typu String. Součin vstupního trvání a součinitele.

Příklady

Následující příklady uvádějí součiny vrácené pro specifické trvání a součinitel:

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

BirtDuration.negate

Tato funkce vrací zápornou hodnotu trvání.

Syntaxe

string BirtDuration.negate(string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, které se má negovat.

Vrací

Hodnota typu String. Záporná hodnota vstupního trvání.

Příklady

Následující příklad uvádí záporný výsledek specifického trvání:

BirtDuration.negate( "P1Y3M15DT12H30M45S")
// vrací -P1Y3M15DT12H30M45S

BirtDuration.second

Tato funkce vrací hodnotu sekund pro dané trvání.

Syntaxe

integer BirtDuration.second(string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota sekund.

Vrací

Hodnota typu Integer. Číslo představující hodnotu sekund zadaného trvání.

Příklady

Následující příklad uvádí hodnoty sekund vracené pro specifické trvání:

BirtDuration.second( "P1Y3M15DT12H30M45S" ) // vrací 5
BirtDuration.second( "P5Y8DT15H" ) // vrací 0

BirtDuration.subtract

Tato funkce odečte trvání od jiného trvání.

Syntaxe

string BirtDuration.subtract(string lexikální_trvání_1, string lexikální_trvání_2)

Parametry

lexikální_trvání_1

Hodnota typu String. Trvání, od kterého se má odečítat.

lexikální_trvání_2

Hodnota typu String. Trvání odečítané od lexikálního_trvání_1.

Vrací

Hodnota typu String. Rozdíl dvou vstupních trvání.

Příklady

V následujícím příkladu jsou odečtena dvě trvání:

BirtDuration.subtract("P1Y3M", "P13M") // vrací P0Y2M

BirtDuration.timeInMills

Tato funkce vrací počet milisekund v daném trvání od zadaného počátečního data. Počet milisekund v trvání se může měnit v závislosti na datu zahájení. Například trvání o délce jednoho měsíce může v závislosti na datu zahájení trvat 28, 29, 30 nebo 31 dnů. Je-li datum zahájení 1. leden, funkce vypočte počet milisekund mezi 1. lednem a 1. únorem (bez 1. února), tj. 2678400000 milisekund či 31 dnů. Je-li datum zahájení 1. února 2009 (přestupný rok), funkce vypočte počet milisekund mezi 1. únorem a 1. březnem, tj. 2505600000 milisekund či 29 dnů.

Syntaxe

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Parametry

lexikální_trvání

Hodnota typu String. Trvání, jehož délka v milisekundách má být získána.

datum_zahájení

Objekt typu Date. Představuje počáteční datum.

Vrací

Objekt typu Number. Počet milisekund v zadaném trvání.

Příklady

Následující příklady uvádějí počty milisekund vracené pro specifické trvání a data zahájení:

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

BirtDuration.year

Tato funkce vrací hodnotu let pro dané trvání.

Syntaxe

integer BirtDuration.year(string lexikální_trvání)

Parametr

lexikální_trvání

Hodnota typu String. Trvání, ze kterého má být získána hodnota roku.

Vrací

Hodnota typu Integer. Číslo představující hodnotu roku zadaného trvání.

Příklady

Následující příklad uvádí hodnoty let vracené pro specifické trvání:

BirtDuration.year( "P1Y3M15DT12H30M45S" ) // vrací 1
BirtDuration.year( "P8DT15H" ) // vrací 0

(c) Copyright Actuate Corporation 2013