文档

calendarDuration

可变长度日历单位中的时间长度

描述

中的值日历持续时间数组用可变长度的日历单位表示经过的时间。例如,一个月中的天数取决于一年中的特定月份。使用日历持续时间的计算考虑了日光节约时间的变化和闰年。使用日历持续时间数组可简化涉及日历单位(如日和月)的datetime数组的计算。

创建

属性可以创建具有指定时间单位的日历持续时间数组calyearscalquarterscalmonthscalweeks,caldays功能。例如,要创建经过1、2和3个日历月的数组,请使用calmonths函数。

M = calmonths(1:3)
M = 1×3 calendarDuration数组1mo 2mo 3mo

属性创建日历持续时间数组calendarDuration函数,如下所述。

语法

L = calendarDuration(Y,M,D)
L = calendarDuration(Y,M,D,H,MI,S)
L = calendarDuration(Y,M,D,T)
L = calendarDuration(X)
L = calendarDuration(___、“格式”displayFormat)

描述

例子

L = calendarDuration(Y、M, D从数字数组创建日历持续时间数组Y,D,分别为年、月、日。

L = calendarDuration(Y,M,D,H MI S参数指定的小时、分钟和秒H心肌梗死,年代,分别。

例子

L = calendarDuration(Y,M,D,T从包含年、月和日数的数字数组和持续时间数组创建日历持续时间数组T包含经过的时间。

L = calendarDuration(X从数字矩阵创建日历持续时间数组。

例子

L = calendarDuration(___、“格式”displayFormat)另外指定displayFormat的值格式的属性l.的格式属性的显示l但不是它的价值观。您可以将此语法与前面语法中的任何参数一起使用。

输入参数

全部展开

年、月和日,指定为数值数组。这些数组的大小必须相同,或者任意数组都可以是标量。Y、M, D必须只包含整数值。

指定大于12的月份值相当于指定年份加上月份数。例如,25个月等于2年零1个月。但是,日值并不等同于月数,因为一个月中的天数不是固定的,除非将日历持续时间添加到特定的日期时间,否则无法确定。

例子:L = calendarDuration(2,10,24)返回2年、10个月和12天的日历持续时间。

小时、分钟和秒,指定为数值数组。这些数组的大小必须相同,或者任意数组都可以是标量。指定小数秒作为年代.的H而且心肌梗死数组必须只包含整数值。

指定大于12的月份值相当于指定年份加上月份数。例如,25个月等于2年零1个月。分钟值大于60时,会结转到几个小时。秒值大于60,则会延续到一定的分钟数。但是,日值并不等同于月数,因为一个月中的天数不是固定的,除非将日历持续时间添加到特定的日期时间,否则无法确定。类似地,小时值也不等同于日历天数。

例子:L = calendarDuration(2,10,24,12,45,07.451)返回2年10个月24天12小时45分7.451秒的日历持续时间。

经过的时间,指定为持续时间数组。T的大小必须相同Y,D输入参数或标量。

例子:T =小时(5);L = calendarDuration(2,10,24,T)将持续时间5小时添加到l

年、月、日和可选的时间指定为数字矩阵。X必须有三到六列。前三列分别包含年、月和日的数量。如果X有六列,然后最后三列分别包含小时数、分钟数和秒数。

除第六列外,所有列都必须包含整数值。您可以在第六列中指定小数秒。

例子:L = calendarDuration([2 10 24])返回2年、10个月和12天的日历持续时间。

例子:L = calendarDuration([2 10 24 12 45 07.451])返回2年10个月24天12小时45分7.451秒的日历持续时间。

属性

全部展开

日历持续时间的显示格式,指定为字符的组合ywd,t,按照这个顺序。格式必须包括d,t

字符 单位 需要吗?
y 没有
季度(3个月的倍数) 没有
个月 是的
w 没有
d 是的
t 时间(小时、分钟和秒) 是的

要指定小数秒显示的位数,请使用格式函数。

如果日期或时间组件的值为零,则不显示它。

例子:L.Format = 'yqmdt'中显示每个值l作为日历年、季度、月和日的数目,以及它的时间组成部分。

例子

全部展开

创建一个datetime值。

D = datetime(2017,1)
D =datetime01 - 7 - 2017

创建一个datetime数组,其中每个值开始于不同月份的第一天。创建这样一个数组的一种方便方法是将一个日历月份数组添加到D

方法创建一个日历月份数组calmonths函数。

C = calmonths(0:3)
C =1x4 calendarDuration数组0mo 1mo 2mo 3mo

然后,添加D而且C.自C是日历持续时间数组,此操作说明月份可以有不同的天数。

M = d + c
M =1x4 datetime数组2017年01- 7月-2017年01- 9月-2017年01- 10月

由于闰年和日光节约时间,历年、月和日可以有不同的长度。要适应这些不同的时间长度,请使用日历持续时间数组对datetime数组进行算术操作。

L = calendarDuration(1,3,15)
L =calendarDuration1y 3mo 15d

创建一个表示天数的数字数组。

D = [1 3;4 2]
D =1 3 4 2

创建一个表示以小时为单位的流逝时间的持续时间数组。其中一个元素指定25小时,比一天还要长。

T = hours([1 2;25日12])
T =2x2持续时间数组1小时2小时25小时12小时

创建一个日历持续时间数组。指定输入参数DT,年和月的标量值。第二个输入13指定了比一年还要多的月份。

L = calendarDuration(1,13,D,T)
L =2x2 calendarDuration数组2y 1mo 1d 1h 0m 0s 2y 1mo 3d 2h 0m 0s 2y 1mo 4d 25h 0m 0s 2y 1mo 2d 12h 0m 0s

大于12的月份值将在显示中结转到年份。但是,大于24的小时值不会在显示中延续到天。由于日光节约时间,一个日历日的小时数不一定是24小时。

创建日历持续时间数组,并指定以月、周、日和时间显示值的格式。

L = calendarDuration(1,1,5:9,“格式”“mwdt”
L =1x5 calendarDuration数组13mo 1w 13mo 1w 1d 13mo 1w 2d

由于格式不包括“y”对于年份,1年和1月的输入值显示为它们的和,13个月.而“t”必须指定,如果小时、分钟和秒都为零,则不显示时间组件。

提示

  • 有关接受或返回日历持续时间数组的函数的详细信息,请参见日期和时间

  • 当你添加calendarDuration包含多个单元到一个datetime的数组,MATLAB®总是先添加较大的单位。如果t是一个datetime,那么这个命令:

    t + calendarDuration(1,2,3)
    等于:
    T + calyear (1) + calmonths(2) + caldays(3)

扩展功能

在R2014b中引入

这个话题有用吗?