Назад Далее

Класс BirtDuration

Класс BirtDuration предоставляет функции для получения частей периодов (или интервалов), используемых в документах XML. Интервалы указываются в следующем формате:

PnYnMnDTnHnMnS

где:

*
*
nY - число лет
*
nM - число месяцев
*
nD - число дней
*
*
nH - число часов
*
nM - число минут
*
nS - число секунд

Например, следующее значение соответствует интервалу 2 года 3 месяца и 5 дней:

P2Y3M5D

Следующее значение соответствует интервалу 10 часов:

PT10H

Класс BirtDuration является статическим. Приложения не могут создавать экземпляры данного класса.

BirtDuration.add

Эта функция складывает два интервала времени и возвращает сумму.

Синтаксис

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

Параметры

lexicalDuration1

String. Первый интервал-слагаемое.

lexicalDuration2

String. Второй интервал-слагаемое.

Возвращает

String. Сумма интервалов.

Примеры

Пример сложения двух интервалов времени:

BirtDuration.add("P1Y3M", "P13M"); // возвращает P2Y4M

BirtDuration.addTo

Эта функция добавляет интервал времени к указанному объекту Date.

Синтаксис

Date BirtDuration.add(string lexicalDuration, Date date)

Параметры

lexicalDuration

String. Добавляемый интервал.

date

Объект Date. Изменяемые дата и время.

Возвращает

Объект Date. Дата, сдвинутая на интервал.

Примеры

Пример добавления одного года к текущим дате и времени:

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

BirtDuration.compare

Эта функция сравнивает два интервала времени.

Синтаксис

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

Параметры

lexicalDuration1

String. Первый сравниваемый интервал.

lexicalDuration2

String. Второй сравниваемый интервал.

Возвращает

Integer. Частичное отношение порядка между интервалами. 1 - первый интервал длиннее, 0 - интервалы равны, -1 - второй интервал длиннее.

Примеры

С помощью следующих выражений можно сравнить длины указанных интервалов:

BirtDuration.compare("P1Y", "P12M"); // возвращает 0
BirtDuration.compare( "P3M" , "P100D" ); // возвращает -1
BirtDuration.compare( "PT25H" , "P1D" ); // возвращает 1

BirtDuration.day

Эта функция возвращает значение дней указанного интервала.

Синтаксис

integer BirtDuration.day( string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число дней.

Возвращает

Целое число дней в указанном интервале времени.

Примеры

В следующих примерах показаны значения дней, возвращаемые для указанных интервалов:

BirtDuration.day( "P1Y15DT12H" ) // возвращает 15
BirtDuration.day( "P5Y2M" ) // возвращает 0

BirtDuration.getSign

Эта функция возвращает знак интервала времени.

Синтаксис

integer BirtDuration.getSign(string lexicalDuration)

Параметры

lexicalDuration

String. Оцениваемый интервал времени.

Возвращает

Integer. Знак интервала времени как множитель. 1 - положительный интервал, -1 - отрицательный, 0 - пустой или нулевой интервал.

Примеры

В следующем выражении определяются знаки указанных интервалов времени:

BirtDuration.getSign("P0Y"); // возвращает 0
BirtDuration.getSign("-P8Y2M3D"); // возвращает -1

BirtDuration.hour

Эта функция возвращает значение часов указанного интервала.

Синтаксис

integer BirtDuration.hour( string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число часов.

Возвращает

Целое число часов в указанном интервале времени.

Примеры

В следующих примерах показаны значения часов, возвращаемые для указанных интервалов:

BirtDuration.hour( "P1Y15DT12H" ) // возвращает 12
BirtDuration.hour( "P5Y2M" ) // возвращает 0

BirtDuration.isLongerThan

С помощью этой функции можно проверить, является ли один интервал длиннее другого. Для некоторых интервалов невозможно определить, какой из них длиннее, например один месяц (P1M) или 30 дней (P30D), один год (P1Y) или 365 дней (P365D). В таких случаях функция возвращает false.

Синтаксис

boolean BirtDuration.isLongerThan(string lexicalDuration1, string lexicalDuration2)

Параметры

lexicalDuration1

String. Первый сравниваемый интервал.

lexicalDuration2

String. Второй сравниваемый интервал.

Возвращает

Boolean. true - первый интервал длиннее второго, false - в противном случае.

Примеры

С помощью следующих выражений можно сравнить длины указанных интервалов:

BirtDuration.isLongerThan( "P1Y3M" , "P13M" ) // возвращает true
BirtDuration.isLongerThan( "P2M" , "P62D" ) // возвращает false
BirtDuration.isLongerThan( "PT25H" , "P1D" ) // возвращает true

BirtDuration.isShorterThan

С помощью этой функции можно проверить, является ли один интервал короче другого. Для некоторых интервалов невозможно определить, какой из них длиннее, например один месяц (P1M) или 30 дней (P30D), один год (P1Y) или 365 дней (P365D). В таких случаях функция возвращает false.

Синтаксис

boolean BirtDuration.isShorterThan(string lexicalDuration1, string lexicalDuration2)

Параметры

lexicalDuration1

String. Первый сравниваемый интервал.

lexicalDuration2

String. Второй сравниваемый интервал.

Возвращает

Boolean. true - первый интервал короче второго, false - в противном случае.

Примеры

С помощью следующих выражений можно сравнить длины указанных интервалов:

BirtDuration.isShorterThan( "P1Y3M" , "P13M" ) // возвращает false
BirtDuration.isShorterThan( "P2M" , "P62D" ) // возвращает false
BirtDuration.isShorterThan( "PT25H" , "P1D" ) // возвращает false
BirtDuration.isShorterThan( "P27D" , "P1M" ) // возвращает true

BirtDuration.minute

Эта функция возвращает значение минут указанного интервала.

Синтаксис

integer BirtDuration.minute(string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число минут.

Возвращает

Integer. Целое число минут в указанном интервале времени.

Примеры

В следующих примерах показаны значения минут, возвращаемые для указанных интервалов:

BirtDuration.minute( "P1Y15DT12H30M45S" ) // возвращает 30
BirtDuration.minute( "P5Y2M8DT15H" ) // возвращает 0

BirtDuration.month

Эта функция возвращает значение месяцев указанного интервала.

Синтаксис

integer BirtDuration.month(string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число месяцев.

Возвращает

Integer. Целое число месяцев в указанном интервале времени.

Примеры

В следующих примерах показаны значения месяцев, возвращаемые для указанных интервалов:

BirtDuration.month( "P1Y3M15DT12H30M45S" ) // возвращает 3
BirtDuration.month( "P5Y8DT15H" ) // возвращает 0

BirtDuration.multiply

Эта функция возвращает результат умножения интервала времени на число.

Синтаксис

string BirtDuration.multiply(string lexicalDuration, integer factor)

Параметр

lexicalDuration

String. Интервал-множитель.

factor

Integer. Число-множитель.

Возвращает

String. Произведение указанных интервала и числа.

Примеры

Примеры умножения интервала на число:

BirtDuration.multiply( "P1Y3M15DT12H30M45S", 1);
// возвращает P1Y3M15DT12H30M45S
BirtDuration.multiply( "P5Y8DT15H", 0); // возвращает P0Y0DT0H

BirtDuration.negate

Эта функция возвращает значение интервала времени с противоположным знаком.

Синтаксис

string BirtDuration.negate(string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, у которого требуется изменить знак.

Возвращает

String. Значение указанного интервала с противоположным знаком.

Примеры

Примеры изменения знака интервала времени:

BirtDuration.negate( "P1Y3M15DT12H30M45S");
// возвращает -P1Y3M15DT12H30M45S

BirtDuration.second

Эта функция возвращает значение секунд указанного интервала.

Синтаксис

integer BirtDuration.second(string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число секунд.

Возвращает

Integer. Целое число секунд в указанном интервале времени.

Примеры

В следующих примерах показаны значения секунд, возвращаемые для указанных интервалов:

BirtDuration.second( "P1Y3M15DT12H30M45S" ) // возвращает 5
BirtDuration.second( "P5Y8DT15H" ) // возвращает 0

BirtDuration.subtract

Эта функция вычисляет разность двух интервалов времени.

Синтаксис

string BirtDuration.subtract(string lexicalDuration1, string lexicalDuration2)

Параметры

lexicalDuration1

String. Интервал-уменьшаемое.

lexicalDuration2

String. Интервал-вычитаемое.

Возвращает

String. Разность интервалов.

Примеры

Пример разности двух интервалов:

BirtDuration.subtract("P1Y3M", "P13M"); // возвращает P0Y2M

BirtDuration.timeInMills

Эта функция возвращает количество миллисекунд в указанном интервале с учетом указанной начальной даты. Количество миллисекунд в интервале зависит от начальной даты. Например, интервал, соответствующий одному месяцу, может содержать разное число дней (28, 29, 30 или 31) в зависимости от начальной даты. Если начальная дата - 1 января, данная функция вычисляет количество миллисекунд между датами 1 января и 1 февраля (не включая 1 февраля), что соответствует 2678400000 миллисекундам или 31 дню. Если начальная дата - 1 января 2009 года (високосный год), данная функция вычисляет количество миллисекунд между датами 1 февраля и 1 марта (не включая 1 февраля), что соответствует 2505600000 миллисекундам или 29 дням.

Синтаксис

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

Параметры

lexicalDuration

String. Интервал времени, чья длина будет пересчитана в миллисекунды.

startDate

Объект Date. Начальная дата.

Возвращает

Числовой объект. Длина указанного интервала в миллисекундах.

Примеры

В следующих примерах показано количество миллисекунд, возвращаемое для указанных интервалов и начальных дат:

BirtDuration.timeInMills( "P1Y3M10D" , "2009-01-01" ); // возвращает 40172400000
BirtDuration.timeInMills( "P1Y3M10D" , "2008-01-01" ); // возвращает 40258800000
BirtDuration.timeInMills( "PT6H45M20S" , "2009-01-01" ); // возвращает 24320000

BirtDuration.year

Эта функция возвращает значение количества лет указанного интервала.

Синтаксис

integer BirtDuration.year(string lexicalDuration)

Параметр

lexicalDuration

String. Интервал времени, из которого берется число лет.

Возвращает

Integer. Целое число лет в указанном интервале времени.

Примеры

В следующих примерах показаны значения количества лет, возвращаемые для указанных интервалов:

BirtDuration.year( "P1Y3M15DT12H30M45S" ) // возвращает 1
BirtDuration.year( "P8DT15H" ) // возвращает 0

(c) Copyright Actuate Corporation 2013