上一页 下一页

BirtDuration

BirtDuration 类提供了一些函数来获取 XML 文档中使用的时间段或持续时间的某些部分。按以下格式指定持续时间:

PnYnMnDTnHnMnS

其中:

*
*
nY 表示年数
*
nM 表示月数
*
nD 表示天数
*
*
nH 指示小时数
*
nM 指示分钟数
*
nS 指示秒数

例如,以下值指示一个持续时间为两年三个月零五天:

P2Y3M5D

以下值指示一个长达 10 小时的持续时间:

PT10H

BirtDuration 类是静态类。应用程序无法创建此类的实例。

BirtDuration.add

此函数将两个持续时间相加,并返回总和。

语法

string BirtDuration.add(string lexicalDuration1, string lexicalDuration2)

参数

lexicalDuration1

字符串。要相加的第一个持续时间。

lexicalDuration2

字符串。要相加的第二个持续时间。

返回

字符串。两个输入持续时间的总和。

示例

以下示例将两个持续时间相加:

BirtDuration.add("P1Y3M", "P13M") // 将返回 P2Y4M

BirtDuration.addTo

此函数将对指定的 Date 对象加上一个持续时间。

语法

Date BirtDuration.add(string lexicalDuration, Date date)

参数

lexicalDuration

字符串。要加上的持续时间。

date

Date 对象。要修改的日期和时间。

返回

Date 对象。提前了指定持续时间的日期。

示例

以下示例将对今天的日期和时间加上一年:

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

BirtDuration.compare

此函数用于测试一个持续时间是等于、长于还是短于另一个持续时间。

语法

integer BirtDuration.compare(string lexicalDuration1, string lexicalDuration2)

参数

lexicalDuration1

字符串。要在比较中使用的第一个持续时间。

lexicalDuration2

字符串。要在比较中使用的第二个持续时间。

返回

整数。两个持续时间之间的偏序关系。如果第一个持续时间较长,那么将返回 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

字符串。要从其中获取天数值的持续时间。

返回

用于表示所指定持续时间的天数值的一个整数。

示例

下列示例显示为特定持续时间返回的天数值:

BirtDuration.day( "P1Y15DT12H" ) // 将返回 15
BirtDuration.day( "P5Y2M" ) // 将返回 0

BirtDuration.getSign

此函数将返回持续时间的符号。

语法

integer BirtDuration.getSign( string lexicalDuration )

参数

lexicalDuration

字符串。要分析的持续时间。

返回

整数。以系数表示的持续时间符号。对于正持续时间将返回 1,对于负持续时间将返回 -1,而对于空值或 0 值将返回 0。

示例

以下表达式对特定持续时间的符号进行分析:

BirtDuration.getSign("P0Y"); // 将返回 0
BirtDuration.getSign("-P8Y2M3D"); // 将返回 -1

BirtDuration.hour

此函数将返回所给定持续时间的小时数值。

语法

integer BirtDuration.hour( string lexicalDuration )

参数

lexicalDuration

字符串。要从其中获取小时数值的持续时间。

返回

用于表示所指定持续时间的小时数值的一个整数。

示例

下列示例显示为特定持续时间返回的小时数值:

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

字符串。要在比较中使用的第一个持续时间。

lexicalDuration2

字符串。要在比较中使用的第二个持续时间。

返回

布尔值。如果第一个持续时间长于第二个持续时间,那么将返回 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

字符串。要在比较中使用的第一个持续时间。

lexicalDuration2

字符串。要在比较中使用的第二个持续时间。

返回

布尔值。如果第一个持续时间短于第二个持续时间,那么将返回 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

字符串。要从其中获取分钟数值的持续时间。

返回

整数。用于表示所指定持续时间的分钟数值的一个数。

示例

下列示例显示为特定持续时间返回的分钟数值:

BirtDuration.minute( "P1Y15DT12H30M45S" ) // 将返回 30
BirtDuration.minute( "P5Y2M8DT15H" ) // 将返回 0

BirtDuration.month

此函数将返回所给定持续时间的月数值。

语法

integer BirtDuration.month( string lexicalDuration )

参数

lexicalDuration

字符串。要从其中获取月数值的持续时间。

返回

整数。用于表示所指定持续时间的月数值的一个数。

示例

下列示例显示为特定持续时间返回的月数值:

BirtDuration.month( "P1Y3M15DT12H30M45S" ) // 将返回 3
BirtDuration.month( "P5Y8DT15H" ) // 将返回 0

BirtDuration.multiply

此函数将返回持续时间与常规数字的乘积。

语法

string BirtDuration.multiply( string lexicalDuration, integer factor )

参数

lexicalDuration

字符串。要相乘的持续时间。

factor

整数。要相乘的常规数字。

返回

字符串。输入持续时间与系数的乘积。

示例

以下示例显示对特定持续时间和系数返回的乘积:

BirtDuration.multiply( "P1Y3M15DT12H30M45S", 1)
// 将返回 P1Y3M15DT12H30M45S
BirtDuration.multiply( "P5Y8DT15H", 0) // 将返回 P0Y0DT0H

BirtDuration.negate

此函数将返回持续时间的负值。

语法

string BirtDuration.negate( string lexicalDuration )

参数

lexicalDuration

字符串。要求反的持续时间。

返回

字符串。输入持续时间的负值。

示例

以下示例显示特定持续时间的负结果:

BirtDuration.negate( "P1Y3M15DT12H30M45S")
// 将返回 -P1Y3M15DT12H30M45S

BirtDuration.second

此函数将返回所给定持续时间的秒数值。

语法

integer BirtDuration.second( string lexicalDuration )

参数

lexicalDuration

字符串。要从其中获取秒数值的持续时间。

返回

整数。用于表示所指定持续时间的秒数值的一个数。

示例

下列示例显示为特定持续时间返回的秒数值:

BirtDuration.second( "P1Y3M15DT12H30M45S" ) // 将返回 5
BirtDuration.second( "P5Y8DT15H" ) // 将返回 0

BirtDuration.subtract

此函数将从一个持续时间中减去另一个持续时间。

语法

string BirtDuration.subtract( string lexicalDuration1, string lexicalDuration2 )

参数

lexicalDuration1

字符串。要作为被减数的持续时间。

lexicalDuration2

字符串。要从 lexicalDuration1 减去的持续时间。

返回

字符串。两个输入持续时间之间的差。

示例

以下示例将两个持续时间相减:

BirtDuration.subtract("P1Y3M", "P13M") // 将返回 P0Y2M

BirtDuration.timeInMills

此函数将返回所给定持续时间内从所指定的起始日期开始的毫秒数。持续时间内的毫秒数会随着起始日期不同而不同。例如,根据起始日期不同,一个月的持续时间可能是 28 天、29 天、30 天或 31 天。如果起始日期为 1 月 1 日,那么此函数将计算从 1 月 1 日到 2 月 1 日(不包括 2 月 1 日)之间的毫秒数,此值为 2678400000 毫秒,也就是 31 天。如果起始日期为 2009 年 2 月 1 日(闰年),那么此函数将计算从 2 月 1 日到 3 月 1 日之间经过的毫秒数,此值为 2505600000 毫秒(即,29 天)。

语法

Number BirtDuration.timeInMills( string lexicalDuration, Date startDate )

参数

lexicalDuration

字符串。要获取其时间长度(以毫秒计)的持续时间。

startDate

Date 对象。用于表示起始日期。

返回

Number 对象。所指定的持续时间中的毫秒数。

示例

下列示例显示为特定持续时间返回的毫秒数和起始日期:

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

字符串。要从其中获取年数值的持续时间。

返回

整数。用于表示所指定持续时间的年数值的一个数。

示例

下列示例显示为特定持续时间返回的年数值:

BirtDuration.year( "P1Y3M15DT12H30M45S" ) // 将返回 1
BirtDuration.year( "P8DT15H" ) // 将返回 0

© Copyright Actuate Corporation 2013