Vorheriges Nächstes

Klasse "BirtDuration"

Die Klasse 'BirtDuration' stellt Funktionen zum Abrufen von Teilen von in XML-Dokumenten verwendeten Zeiträumen bereit. Die Zeiträume werden in folgendem Format angegeben:

PnYnMnDTnHnMnS

Hierbei gilt Folgendes:

*
*
n"Y" gibt die Anzahl der Jahre an
*
n"M" gibt die Anzahl der Monate an
*
n"D" gibt die Anzahl der Tage an
*
*
n"H" gibt die Anzahl der Stunden an
*
n"M" gibt die Anzahl der Minuten an
*
n"S" gibt die Anzahl der Sekunden an

Der folgende Wert beispielsweise gibt einen Zeitraum von 2 Jahren, 3 Monaten und 5 Tagen an:

P2Y3M5D

Der folgende Wert gibt eine Dauer von 10 Stunden an:

PT10H

"BirtDuration" ist eine statische Klasse. Die Anwendung kann keine Instanzen der Klasse erstellen.

BirtDuration.add

Diese Funktion addiert zwei Dauerwerte und gibt die Summe zurück.

Syntax

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Parameter

lexicalDuration1

String. Die erste Dauer für die Addition.

lexicalDuration2

String. Die zweite Dauer für die Addition.

Rückgabe

String. Die Summe der beiden Eingabedauerwerte.

Beispiele

Das folgende Beispiel addiert zwei Dauerwerte:

BirtDuration.add("P1Y3M", "P13M") // Rückgabewert: P2Y4M

BirtDuration.addTo

Diese Funktion addiert eine Dauer zu einem angegebenen Datumsobjekt.

Syntax

Date BirtDuration.add(string lexicalDuration, Date date)

Parameter

lexicalDuration

String. Die zu addierende Dauer.

date

Datumsobjekt (Date). Das Datum und die Zeit, die geändert werden sollen.

Rückgabe

Datumsobjekt (Date). Das Datum mit hinzuaddierter Dauer.

Beispiele

Im folgenden Beispiel wird ein Jahr zu dem heutigen Datum und der Uhrzeit addiert:

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

BirtDuration.compare

Diese Funktion prüft, ob ein Zeitraum genauso lang wie ein anderer ist oder ob er länger oder kürzer ist.

Syntax

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

Parameter

lexicalDuration1

String. Die erste Dauer, die in dem Vergleich verwendet werden soll.

lexicalDuration2

String. Die zweite Dauer, die in dem Vergleich verwendet werden soll.

Rückgabe

Integer. Teilreihenfolgebeziehung zwischen den beiden Dauerwerten. Mögliche Rückgabewerte: 1 (wenn erster Zeitraum größer ist), 0 (gleicher Zeitraum) und -1 (wenn zweiter Zeitraum größer ist).

Beispiele

Die folgenden Ausdrücke vergleichen die Länge bestimmter Dauerwerte:

BirtDuration.compare("P1Y", "P12M"); // Rückgabewert: 0
BirtDuration.compare( "P3M" , "P100D" ) // Rückgabewert: -1
BirtDuration.compare( "PT25H" , "P1D" ) // Rückgabewert: 1

BirtDuration.day

Diese Funktion gibt den Tageswert für eine angegebene Dauer zurück.

Syntax

integer BirtDuration.day( string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für die Tage abgerufen werden soll.

Rückgabe

Eine ganze Zahl, die den Wert für die Tage der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Tageswerte für bestimmte Dauerwerte zurückgegeben werden:

BirtDuration.day( "P1Y15DT12H" ) // Rückgabewert: 15
BirtDuration.day( "P5Y2M" ) // Rückgabewert: 0

BirtDuration.getSign

Diese Funktion gibt das Zeichen für eine Dauer zurück.

Syntax

integer BirtDuration.getSign(string lexicalDuration)

Parameter

lexicalDuration

String. Die Dauer, die analysiert werden soll.

Rückgabe

Integer. Das Zeichen für die Dauer ist ein Multiplikator. Gibt 1 für einen positiven Zeitraum, -1 für einen negativen Zeitraum und 0 für den Wert null zurück.

Beispiele

Der folgende Ausdruck analysiert die Zeichen einer bestimmten Dauer:

BirtDuration.getSign("P0Y"); // Rückgabewert: 0
BirtDuration.getSign("-P8Y2M3D"); // Rückgabewert: -1

BirtDuration.hour

Diese Funktion gibt den Stundenwert für eine angegebene Zeitdauer zurück.

Syntax

integer BirtDuration.hour( string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für die Stunden abgerufen werden soll.

Rückgabe

Eine ganze Zahl, die den Wert für die Stunden der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Stundenwerte für bestimmte Zeiträume zurückgegeben werden:

BirtDuration.hour( "P1Y15DT12H" ) // Rückgabewert: 12
BirtDuration.hour( "P5Y2M" ) // Rückgabewert: 0

BirtDuration.isLongerThan

Diese Funktion prüft, ob eine Zeitdauer länger ist als eine andere. Manchmal kann die Reihenfolgebeziehung zwischen bestimmten Zeiträumen nicht ermittelt werden, zum Beispiel zwischen einem Monat (P1M) und 30 Tagen (P30D) oder einem Jahr (P1Y) und 365 Tagen (P365D). In diesen Fällen gibt die Funktion den Wert 'false' (falsch) zurück.

Syntax

boolean BirtDuration.isLongerThan( string lexicalDuration1, string lexicalDuration2 )

Parameter

lexicalDuration1

String. Die erste Dauer, die in dem Vergleich verwendet werden soll.

lexicalDuration2

String. Die zweite Dauer, die in dem Vergleich verwendet werden soll.

Rückgabe

Boolean. Die Rückgabe ist 'true' (wahr), wenn die erste Dauer länger ist als die zweite. Andernfalls wird der Wert 'false' (falsch) zurückgegeben.

Beispiele

Die folgenden Ausdrücke vergleichen die Länge bestimmter Zeitspannen:

BirtDuration.isLongerThan( "P1Y3M" , "P13M" ) // Rückgabewert: true
BirtDuration.isLongerThan( "P2M" , "P62D" ) // Rückgabewert: false
BirtDuration.isLongerThan( "PT25H" , "P1D" ) // Rückgabewert: true

BirtDuration.isShorterThan

Diese Funktion prüft, ob eine Dauer kürzer ist als eine andere. Manchmal kann die Reihenfolgebeziehung zwischen bestimmten Zeiträumen nicht ermittelt werden, zum Beispiel zwischen einem Monat (P1M) und 30 Tagen (P30D) oder einem Jahr (P1Y) und 365 Tagen (P365D). In diesen Fällen gibt die Funktion den Wert 'false' (falsch) zurück.

Syntax

boolean BirtDuration.isShorterThan( string lexicalDuration1, string lexicalDuration2 )

Parameter

lexicalDuration1

String. Die erste Dauer, die in dem Vergleich verwendet werden soll.

lexicalDuration2

String. Die zweite Dauer, die in dem Vergleich verwendet werden soll.

Rückgabe

Boolescher Wert. Die Rückgabe ist 'true' (wahr), wenn die erste Dauer kürzer ist als die zweite. Andernfalls wird der Wert 'false' (falsch) zurückgegeben.

Beispiele

Die folgenden Ausdrücke vergleichen die Länge bestimmter Zeitspannen:

BirtDuration.isShorterThan( "P1Y3M" , "P13M" ) // Rückgabewert: false
BirtDuration.isShorterThan( "P2M" , "P62D" ) // Rückgabewert: false
BirtDuration.isShorterThan( "PT25H" , "P1D" ) // Rückgabewert: false
BirtDuration.isShorterThan( "P27D" , "P1M" ) // Rückgabewert: true

BirtDuration.minute

Diese Funktion gibt den Minutenwert für eine angegebene Zeitdauer zurück.

Syntax

integer BirtDuration.minute(string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für die Minuten abgerufen werden soll.

Rückgabe

Integer. Eine Zahl, die den Wert für die Minuten der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Minutenwerte für bestimmte Zeiträume zurückgegeben werden:

BirtDuration.minute( "P1Y15DT12H30M45S" ) // Rückgabewert: 30
BirtDuration.minute( "P5Y2M8DT15H" ) // Rückgabewert: 0

BirtDuration.month

Diese Funktion gibt den Monatswert für eine angegebene Zeitdauer zurück.

Syntax

integer BirtDuration.month(string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für die Monate abgerufen werden soll.

Rückgabe

Integer. Eine Zahl, die den Wert für die Monate der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Monatswerte für bestimmte Zeiträume zurückgegeben werden:

BirtDuration.month( "P1Y3M15DT12H30M45S" ) // Rückgabewert: 3
BirtDuration.month( "P5Y8DT15H" ) // Rückgabewert: 0

BirtDuration.multiply

Diese Funktion gibt das Produkt einer Dauer und einer regulären Zahl zurück.

Syntax

string BirtDuration.multiply(string lexicalDuration, integer factor)

Parameter

lexicalDuration

String. Eine Dauer für die Multiplikation.

Faktor

Integer. Eine reguläre Zahl für die Multiplikation.

Rückgabe

String. Das Produkt aus der Eingabedauer und dem Faktor.

Beispiele

Die folgenden Beispiele zeigen die Produkte, die für eine bestimmte Dauer und einen Faktor zurückgegeben werden:

BirtDuration.multiply( "P1Y3M15DT12H30M45S", 1)
// Rückgabewert: P1Y3M15DT12H30M45S
BirtDuration.multiply( "P5Y8DT15H", 0) // Rückgabewert: P0Y0DT0H (bzw. Feb.)

BirtDuration.negate

Diese Funktion gibt den negativen Wert für eine Dauer zurück.

Syntax

string BirtDuration.negate(string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer für die Negation.

Rückgabe

String. Der negative Wert der Eingabedauer.

Beispiele

Die folgenden Beispiele zeigen das negative Ergebnis aus einer bestimmten Dauer:

BirtDuration.negate( "P1Y3M15DT12H30M45S")
// Rückgabewert: -P1Y3M15DT12H30M45S

BirtDuration.second

Diese Funktion gibt den Sekundenwert für eine angegebene Zeitdauer zurück.

Syntax

integer BirtDuration.second(string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für die Sekunden abgerufen werden soll.

Rückgabe

Integer. Eine Zahl, die den Wert für die Sekunden der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Sekundenwerte für bestimmte Dauerwerte zurückgegeben werden:

BirtDuration.second( "P1Y3M15DT12H30M45S" ) // Rückgabewert: 5
BirtDuration.second( "P5Y8DT15H" ) // Rückgabewert: 0

BirtDuration.subtract

Diese Funktion subtrahiert eine Dauer von einer anderen Dauer.

Syntax

string BirtDuration.subtract(string lexicalDuration1, string lexicalDuration2)

Parameter

lexicalDuration1

String. Die Dauer, von der subtrahiert werden soll.

lexicalDuration2

String. Die Dauer, die von lexicalDuration1 subrahiert wird.

Rückgabe

String. Die Differenz der beiden Eingabedauerwerte.

Beispiele

Das folgende Beispiel subtrahiert zwei Dauerwerte:

BirtDuration.subtract( "P1Y3M" , "P13M" ) // Rückgabewert: P0Y2M

BirtDuration.timeInMills

Diese Funktion gibt die Anzahl der Millisekunden in einem angegebenen Zeitraum ab einem angegebenen Startdatum zurück. Die Anzahl der Millisekunden in einem Zeitraum kann abhängig vom Startdatum variieren. Die Dauer eines Monats kann je nach Startdatum zum Beispiel 28, 29, 30 oder 31 Tage betragen. Wenn der 1. Januar das Startdatum ist, so berechnet die Funktion die Millisekunden zwischen dem 1. Januar und dem 1. Februar (ausschließlich 1. Februar). Das Ergebnis lautet 2.678.400.000 Millisekunden oder 31 Tage. Wenn der 1. Februar 2009 (2009 ist ein Schaltjahr) das Startdatum ist, so berechnet die Funktion die Millisekunden zwischen dem 1. Februar und dem 1. März. Das Ergebnis lautet 2 505 600 000 Millisekunden oder 29 Tage.

Syntax

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Parameter

lexicalDuration

String. Eine Dauer, deren Länge in Millisekunden abgerufen werden soll.

startDate

Datumsobjekt (Date). Stellt das Startdatum dar.

Rückgabe

Zahlenobjekt (Number). Die Anzahl von Millisekunden in der angegebenen Zeitdauer.

Beispiele

Die folgenden Beispiele zeigen die Anzahl der Millisekunden, die für bestimmte Zeiträume und Startdatumsangaben zurückgegeben wird:

BirtDuration.timeInMills( "P1Y3M10D" , "2009-01-01" ) // Rückgabewert: 40 172 400 000
BirtDuration.timeInMills( "P1Y3M10D" , "2008-01-01" ) // Rückgabewert: 40 258 800 000
BirtDuration.timeInMills( "PT6H45M20S" , "2009-01-01" ) // Rückgabewert: 24 320 000

BirtDuration.year

Diese Funktion gibt den Jahreswert für eine angegebene Zeitdauer zurück.

Syntax

integer BirtDuration.year(string lexicalDuration)

Parameter

lexicalDuration

String. Eine Dauer, von der der Wert für das Jahr abgerufen werden soll.

Rückgabe

Integer. Eine Zahl, die den Wert für das Jahr der angegebenen Dauer darstellt.

Beispiele

Die folgenden Beispiele zeigen, welche Jahreswerte für bestimmte Zeiträume zurückgegeben werden:

BirtDuration.year( "P1Y3M15DT12H30M45S" ) // Rückgabewert: 1
BirtDuration.year( "P8DT15H" ) // Rückgabewert: 0

(c) Copyright Actuate Corporation 2013