日期和时间的算术
这个例子展示了如何加减日期和时间值来计算未来和过去的日期和具体单位或日历单位运行时间。你可以进行加、减、乘和除日期和时间数组以同样的方式使用这些操作符与其他MATLAB®数据类型。然而,有一些行为是特定的日期和时间。
Datetime数组加减持续时间
创建一个datetime标量。默认情况下,datetime数组没有相关联的时区。
t1 = datetime (“现在”)
t1 =datetime01 - 2月- 2020 00:21:19
找到未来的时间点通过添加一个时间序列。
t2 = t1 +小时(1:3)
t2 =1 x3 datetime数组01 - 2月- 2020年01:21:19 01 - - 2020 02:21:19 01 - 2月- 2020年2月03:21:19
验证每一对datetime值之间的差异t2
是1小时。
dt = diff (t2)
dt =1 x2时间数组01:00:00 01:00:00
diff
返回时间的精确数量的小时,分钟,秒。
减去一个序列分钟datetime找到过去的时间点。
t2 = t1 -分钟(20:10:40)
t2 =1 x3 datetime数组01 - - 2020 00:01:19 31 - 1月- 2020年2月23:51:19 31 - 1月- 2020 23:41:19
添加一个数字数组datetime
数组中。MATLAB®对待数字数组中的每个值作为一个数量的准确,24小时天。
t2 = t1 + [1:3]
t2 =1 x3 datetime数组02 - 2月2020 00:21:19 03 - 2020年2月- 2020 00:21:19 04 - 2月- 00:21:19
添加与时区Datetime
如果您使用datetime值在不同的时区,或者如果你想占夏令时变化,与datetime数组与时区相关联。创建一个datetime
2014年3月8日,标量代表在纽约。
t1 = datetime (2014 3 8 0, 0, 0,“时区”,“美国/ New_York”)
t1 =datetime08 - mar - 2014就是
找到未来的时间点通过添加一个固定长度的序列(24小时)天。
t2 = t1 +天(0:2)
t2 =1 x3 datetime数组08 - mar - 2014就是09年3月- 2014就是10 - 3月- 2014 01:00:00
因为夏令时的转变发生在3月9日,2014年,第三datetimet2
不发生在午夜。
验证每一对datetime值之间的差异t2
是24小时。
dt = diff (t2)
dt =1 x2时间数组24:00:00 24:00:00
您可以添加固定长度的持续时间等其他单位的年,小时,分钟,秒通过添加的输出年
,小时
,分钟
,秒
函数,分别。
占夏令时的变化,你应该使用日历时间,而不是时间。日历时间占夏令时调整增加或减少时从datetime值。
添加一个日历天t1
。
t3 = t1 + caldays (0:2)
t3 =1 x3 datetime数组08 - - 2014就是09年3月- 2014年3月10 - 3月- 2014就是就是
认为每一对datetime值之间的差异t3
并不总是24小时由于日光节约时间3月9日发生的转变。
dt = diff (t3)
dt =1 x2时间数组24:00:00 23:00:00
添加日历时间Datetime数组
添加一个日历月的1月31日,2014年。
t1 = datetime (2014, 31)
t1 =datetime31 - 1月- 2014
t2 = t1 + calmonths (1:4)
t2 =1 x4 datetime数组28 - 30 2014年2月- 2014年3月31日- - - 4月- 2014年31 - 5 - 2014
每一个datetimet2
发生在每个月的最后一天。
计算每一对datetime值之间的差异t2
的天使用caldiff
函数。
dt = caldiff (t2,“天”)
dt =1 x3 calendarDuration数组31 d 30 d 31 d
连续对datetime值之间的天数dt
并不总是相同的,因为不同的个月由一个不同的天数。
添加一个日历年1月31日,2014年。
t2 = t1 + calyears (0:4)
t2 =1 x5 datetime数组31日- 1月- 2014年1月31 - - 2015 31 - 1月- 2016年31日- 1月31 - 2017 - 1 - 2018
计算每一对datetime值之间的差异t2
的天使用caldiff
函数。
dt = caldiff (t2,“天”)
dt =1 x4 calendarDuration数组365 d 365 d 366 d 365 d
连续对datetime值之间的天数dt
并不总是相同的,因为2016年是一个闰年,366天。
您可以使用calquarters
,calweeks
,caldays
函数创建数组的日历,日历周或天您添加或减去datetime数组。
添加日历时间不是交换。当你添加一个以上calendarDuration
数组datetime, MATLAB®补充说他们的顺序出现在命令。
添加3个日历月紧随其后30日历天1月31日,2014年。
t2 = datetime (2014, 31) + calmonths (3) + caldays (30)
t2 =datetime30 - 5 - 2014
第一次添加30日历天相同的日期,然后添加3个日历月。结果是不一样的,因为当你添加一个日历时间datetime,添加的天数取决于最初的日期。
t2 = datetime (2014, 31) + caldays (30) + calmonths (3)
t2 =datetime02 - jun - 2014
日历时间算术
创建两个日历时间,然后发现他们的总和。
d1 = calyears calmonths (1) + (2) + caldays (20)
d1 =calendarDuration1 y 2莫20 d
d2 = calmonths (11) + caldays (23)
d2 =calendarDuration11莫23 d
d = d1和d2
d =calendarDuration2 y 1 mo 43 d
当你和两个或两个以上的日历时间,许多个月大于12卷到几年。然而,大量的天不延期几个月,因为不同的个月由不同数量的天。
增加d
通过乘以一个系数2。日历时间值必须是整数,所以你只能通过整数值相乘。
2 * d
ans =calendarDuration4 y 2莫86 d
计算时间的单位
减去一个datetime
数组从另一个计算时间的一个确切的小时数,分和秒。
找到确切的一个datetime值序列之间的时间长度和前一天的开始。
t2 = datetime (“现在”)+ caldays (1:3)
t2 =1 x3 datetime数组02 - 2月2020 00:21:21 03 - 2020年2月- 2020 00:21:21 04 - 2月- 00:21:21
t1 = datetime (“昨天”)
t1 =datetime31 - 1月- 2020
dt = t2 - t1
dt =1 x3时间数组48:21:21 72:21:21 96:21:21
谁dt
类属性名称大小字节dt 1 x3 40持续时间
dt
包含时间格式,小时:分钟:秒。
查看运行时间以天为单位通过改变格式
的属性dt
。
dt。格式=' d '
dt =1 x3时间数组2.0148天3.0148天4.0148天
规模的持续时间值相乘dt
1.2倍。因为时间有一个精确的长度,你可以乘、除他们的分数值。
dt2 = 1.2 * dt
dt2 =1 x3时间数组2.4178天3.6178天4.8178天
在日历计算运行时间单位
使用之间的
函数来找到的日历年,月,日两个日期之间的时间。
t1 = datetime (“今天”)
t1 =datetime01 - 2月- 2020
t2 = t1 + calmonths (0:2) + caldays (4)
t2 =1 x3 datetime数组05 - 3月- 2020年2月- 2020年05 - 05 - 4月- 2020
dt = (t1, t2)之间
dt =1 x3 calendarDuration数组4 d 1 mo 4 d 2莫4 d