Précédent Suivant

Classe BirtDuration

La classe BirtDuration fournit des fonctions pour obtenir des parties de périodes, ou durées, utilisées dans les documents XML. Les durées sont spécifiées au format suivant :

PnYnMnDTnHnMnS

où :

*
*
nY indique le nombre d'années
*
nM indique le nombre de mois
*
nD indique le nombre de jours
*
*
nH indique le nombre d'heures
*
nM indique le nombre de minutes
*
nS indique le nombre de secondes

Par exemple, la valeur suivante indique une durée de 2 ans, 3 mois et 5 jours :

P2Y3M5D

La valeur suivante indique une durée de 10 heures :

PT10H

La classe BirtDuration est statique. L'application ne peut pas créer d'instance de la classe.

BirtDuration.add

Cette fonction ajoute deux durées et en renvoie la somme.

Syntaxe

chaîne BirtDuration.add(chaîne lexicalDuration1, chaîne lexicalDuration2)

Paramètres

lexicalDuration1

Chaîne. Première durée à ajouter.

lexicalDuration2

Chaîne. Deuxième durée à ajouter.

Renvoie

Chaîne. Somme des deux durées.

Exemples

L'exemple suivant ajoute deux durées :

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

BirtDuration.addTo

Cette fonction ajoute une durée à un objet Date spécifié.

Syntaxe

Date BirtDuration.add(chaîne lexicalDuration, date Date)

Paramètres

lexicalDuration

Chaîne. Durée à ajouter.

date

Objet Date. Date et heure à modifier.

Renvoie

Objet Date. Date avancée par la durée.

Exemples

L'exemple suivant ajoute une année à la date et l'heure d'aujourd'hui :

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

BirtDuration.compare

Cette fonction teste si une durée est identique, supérieure ou inférieure à une autre durée.

Syntaxe

entier BirtDuration.compare(chaîne lexicalDuration1, chaînelexicalDuration2)

Paramètres

lexicalDuration1

Chaîne. Première durée à utiliser dans la comparaison.

lexicalDuration2

Chaîne. Deuxième durée à utiliser dans la comparaison.

Renvoie

Entier. Relation d'ordre partielle entre les deux durées. Renvoie 1 si la première durée est supérieure, 0 si elles sont égales, ou -1 si la deuxième est supérieure.

Exemples

Les expressions suivantes comparent les longueurs de durées spécifiques :

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

BirtDuration.day

Cette fonction retourne le nombre de jours d'une durée.

Syntaxe

entier BirtDuration.day( chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur jours.

Renvoie

Un entier représentant la valeur jours de la durée définie.

Exemples

Les exemples suivants montrent les valeurs jour retournées pour des durées données :

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

BirtDuration.getSign

Cette fonction retourne le signe d'une durée.

Syntaxe

entier BirtDuration.getSign(chaîne lexicalDuration)

Paramètres

lexicalDuration

Chaîne. Durée à analyser.

Renvoie

Entier. Signe de la durée faisant office de multiplicateur. Renvoie 1 pour une durée positive, -1 pour une durée négative, et 0 pour une valeur null ou égale à 0.

Exemples

L'expression suivante analyse les signes d'une durée spécifique :

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

BirtDuration.hour

Cette fonction retourne le nombre d'heures d'une durée donnée.

Syntaxe

entier BirtDuration.hour( chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur heures.

Renvoie

Un entier représentant la valeur heures de la durée définie.

Exemples

Les exemples suivants montrent les valeurs heure retournées pour des durées données :

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

BirtDuration.isLongerThan

Cette fonction permet de déterminer si la durée est plus longue qu'une autre. Parfois, la relation d'ordre entre certaines durées ne peut pas être déterminée, par exemple, un mois (P1M) et 30 jours (P30D), ou une année (P1Y) et 365 jours (P365D). Dans ce cas, la fonction retourne false.

Syntaxe

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Paramètres

lexicalDuration1

Chaîne. Première durée à utiliser dans la comparaison.

lexicalDuration2

Chaîne. Deuxième durée à utiliser dans la comparaison.

Renvoie

Booléen. True si la première durée est supérieure à la seconde ; sinon, retourne false.

Exemples

Les expressions suivantes comparent les longueurs de durées spécifiques :

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

BirtDuration.isShorterThan

Cette fonction permet de déterminer si une durée est plus courte qu'une autre. Parfois, la relation d'ordre entre certaines durées ne peut pas être déterminée, par exemple, un mois (P1M) et 30 jours (P30D), ou une année (P1Y) et 365 jours (P365D). Dans ce cas, la fonction retourne false.

Syntaxe

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Paramètres

lexicalDuration1

Chaîne. Première durée à utiliser dans la comparaison.

lexicalDuration2

Chaîne. Deuxième durée à utiliser dans la comparaison.

Renvoie

Booléen. True si la première durée est inférieure à la seconde ; sinon, retourne false.

Exemples

Les expressions suivantes comparent les longueurs de durées spécifiques :

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

BirtDuration.minute

Cette fonction retourne le nombre de minutes d'une durée.

Syntaxe

entier BirtDuration.minute(chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur minutes.

Renvoie

Entier. Nombre représentant la valeur minutes de la durée définie.

Exemples

Les exemples suivants montrent les valeurs minutes retournées pour des durées données :

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

BirtDuration.month

Cette fonction retourne la valeur mois d'une durée donnée.

Syntaxe

entier BirtDuration.month(chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur mois.

Renvoie

Entier. Nombre représentant la valeur mois de la durée définie.

Exemples

Les exemples suivants montrent les valeurs mois retournées pour des durées données :

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

BirtDuration.multiply

Cette fonction renvoie le produit d'une durée par un nombre décimal fini.

Syntaxe

chaîne BirtDuration.multiply(chaîne lexicalDuration, entier factor)

Paramètre

lexicalDuration

Chaîne. Durée à multiplier.

factor

Entier. Nombre décimal fini à multiplier.

Renvoie

Chaîne. Produit de la durée de référence et du facteur.

Exemples

Les exemples ci-après illustrent les produits renvoyés pour une durée et un facteur spécifiques :

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

BirtDuration.negate

Cette fonction retourne la valeur négative d'une durée.

Syntaxe

chaîne BirtDuration.negate(chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée dont la valeur négative doit être renvoyée.

Renvoie

Chaîne. Valeur négative de la durée de référence.

Exemples

Les exemples suivants illustrent le résultat négatif d'une durée donnée :

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

BirtDuration.second

Cette fonction retourne la valeur secondes d'une durée donnée.

Syntaxe

entier BirtDuration.second(chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur secondes.

Renvoie

Entier. Nombre représentant la valeur secondes de la durée définie.

Exemples

Les exemples suivants montrent les valeurs secondes retournées pour des durées données :

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

BirtDuration.subtract

Cette fonction soustrait une durée d'une autre durée.

Syntaxe

chaîne BirtDuration.subtract(chaîne lexicalDuration1, chaîne lexicalDuration2)

Paramètres

lexicalDuration1

Chaîne. Durée à soustraire de.

lexicalDuration2

Chaîne. Durée soustraite de lexicalDuration1.

Renvoie

Chaîne. Différence entre les deux durées de référence.

Exemples

L'exemple suivant soustrait deux durées :

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

BirtDuration.timeInMills

Cette fonction retourne le nombre de millisecondes d'une durée à partir d'une date de début définie. Le nombre de millisecondes dans une durée peut changer en fonction de la date de début. Par exemple, un durée d'un mois peut être 28, 29, 30 ou 31 jours en fonction de la date de début. Si la date de début est le 1er janvier, la fonction calcule le nombre de millisecondes entre le 1er janvier et le 1er février (à l'exception du 1er février), ce qui équivaut à 2 678 400 000 millisecondes, soit 31 jours. Si la date de début est le 1er février 2009 (une année bissextile), la fonction calcule le nombre de millisecondes entre le 1er février et le 1er mars, ce qui équivaut à 2505600000 millisecondes ou 29 jours.

Syntaxe

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Paramètres

lexicalDuration

Chaîne. Durée dont la longueur doit être obtenue en millisecondes.

startDate

Objet Date. Représente la date de début.

Renvoie

Objet Nombre. Nombre de millisecondes de la durée spécifiée.

Exemples

Les exemples suivants affichent le nombre de millisecondes retourné pour des durées et des dates de début spécifiques :

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

BirtDuration.year

Cette fonction retourne la valeur année d'une durée.

Syntaxe

entier BirtDuration.year(chaîne lexicalDuration)

Paramètre

lexicalDuration

Chaîne. Durée à partir de laquelle est obtenue la valeur année.

Renvoie

Entier. Nombre représentant la valeur année de la durée définie.

Exemples

Les exemples suivants montrent les valeurs année retournées pour des durées données :

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

(c) Copyright Actuate Corporation 2013