此示例显示如何使用冒号(:)运算符生成序列datetime
或期间
值的方法与创建规则间隔的数字向量的方法相同。
使用默认步长
从2013年11月1日开始创建一系列日期时间值并于2013年11月5日结束。默认步长为一个日历日。
t1 = datetime(1 2013年,11日,8,0,0);t2 = datetime(2013、11、5、8 0 0);t = t1, t2
t =1x5 DateTime.01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 08:00:00
指定步长
属性指定2个日历天的步长caldays
功能。
t = t1: caldays (2): t2
t =1x3 DateTime.01- 11 -2013 08:00:00 03- 11 -2013 08:00:00 05- 11 -2013 08:00:00
以天以外的单位指定步长。创建一个间隔18小时的datetime值序列。
t = t1:小时(18):t2
t =1x6 DateTime.column 4 to 6 03- 11 -2013 14:00:00 04- 11 -2013 08:00:00 05- 11 -2013 02:00:00
使用年
那天
那分钟
,秒
函数使用其他固定长度的日期和时间单位创建datetime和duration序列。创建一个持续时间值序列,范围在0到3分钟之间,递增30秒。
d = 0:秒(30):分钟(3)
d =1x7持续时间0秒30秒60秒90秒120秒150秒180秒
比较固定长度持续时间和日历持续时间步骤大小
分配时区T1.
和T2.
。在里面美国/ New_York
时区,T1.
现在发生在夏时制改变之前。
t1。时区=“美国/ New_York”;t2.timezone =“美国/ New_York”;
如果使用一个日历日的步长创建序列,那么连续的差异datetime
值并不总是24小时。
t = t1, t2;dt = diff(t)
dt =1 x4持续时间24:00:00 25:00:00 24:00:00 24:00:00
创建一个datetime值序列,间隔一个固定长度的天,
t = t1:天(1):t2
t =1x5 DateTime.列1到3 01-11- 2013 08:00:00 02-11-2013 08:00:00 03-11-2013 07:00:00列4到5 04-11-2013 07:00:00 05-11月07:00:00
验证之间的差异连续datetime
值是24小时。
dt = diff(t)
dt =1 x4持续时间24:00:00 24:00:00 24:00:00 24:00:00
整数步长
如果在整数方面指定步骤大小,则将其解释为24小时的时间。
t = t1:1: t2
t =1x5 DateTime.列1到3 01-11- 2013 08:00:00 02-11-2013 08:00:00 03-11-2013 07:00:00列4到5 04-11-2013 07:00:00 05-11月07:00:00
此示例显示如何将持续时间或日历持续时间添加到DateTime以创建DateTime值序列。
创建一个DateTime Scalar,代表2013年11月1日上午8:00。
t1 = datetime(1 2013年,11日,8,0,0);
向datetime添加一个固定长度的小时序列。
t = t1 +小时(0:2)
t =1x3 DateTime.01- 11 -2013 08:00:00 01- 11 -2013 09:00:00 01- 11 -2013 10:00:00
将一系列日历月序列添加到DateTime。
t = t1 + calmonths(1:5)
t =1x5 DateTime.列1到3 01-Dec-2013 08:00:00 01-Jan-2014 08:00:00 01-Feb-2014 08:00:00列4到5 01-Mar-2014 08:00:00 01-2014年4月08:00:00
每个日期时间T.
发生在每个月的第一天。
验证日期T.
间隔1个月。
dt = caldiff (t)
dt =1x4日历1MO 1MO 1MO 1MO
确定每个日期之间的天数。
dt = caldiff(t,'天')
dt =1x4日历31d 31d 28d 31d
在2014年1月31日,添加许多日历月份,以创建一个落在每个月的最后一天的日期序列。
T = datetime(2014,1,31) + calmonths(0:11)
t =1x12 DateTime.第1至5栏31- 1- 2014 28- 2 -2014 31- 3 -2014 30- 4 -2014 31- 5 -2014第6至10栏30- 6 -2014 31- 7 -2014 31- 8- 2014 30- 9 -2014 31- 10 -2014
这个例子展示了如何使用Linspace.
函数在两个指定的端点之间创建同等间隔的日期时间或持续时间值。
创建一个由2014年4月14日到2014年8月4日之间等间隔的5个日期组成的序列。首先,定义端点。
a = datetime(2014,04,14);B = DateTime(2014,08,04);
第三个输入Linspace.
指定在端点之间生成的线性间隔点的数目。
c = linspace(a,b,5)
C =1x5 DateTime.2014年4月14日2014年5月12日2014年6月07日2014年7月04日2014年8月
创建一个由6个等距持续时间组成的序列,间隔从1小时到5.5小时。
=时间(1,0,0);B =持续时间(5 30 0);C = linspace (A, B, 6)
C =1x6持续时间01:00:00 01:54:00 02:48:00 03:42:00 04:36:00 05:30:00
这个例子展示了如何使用dateshift
功能生成日期和时间序列,其中每个实例遵循与日历单元或时间单位有关的规则。例如,每个日期时间必须在一个月开始,一周的特定日期,或在一分钟结束时发生。序列中的生成的Datetime值不一定同样间隔。
日期在一周的特定日期
生成一系列日期,包括星期一的下一个出现。首先,定义今天的日期。
t1 = datetime ('今天'那'格式'那'dd-mmm-yyyy eee')
t1 =datetime23-FEB-2021 TUE
第一个输入dateshift
永远是datetime
您要生成序列的数组。指定'Dayofweek'
作为第二个输入,表示输出序列中的日期时间值必须落在一周的特定日期。您可以通过数字或名称指定一周的日期。例如,您可以指定星期一2
或'周一'
。
t = dateshift(t1,'Dayofweek'、2、1:3)
t =1x3 DateTime.01-Mar-2021 Mon 08-Mar-2021 Mon 15-Mar-2021 Mon
日期在月初
从2014年4月1日开始生成一系列月度开始日期。指定“开始”
作为第二个输入dateshift
表示输出序列中的所有DateTime值应落在特定时间单位的开始时。第三个输入参数定义了时间单位,在这种情况下,月份。最后一个输入dateshift
可以是一个整数值数组,指定如何T1.
应该是发生了变化。在这种情况下,0.
对应于当月的开始,并且4.
对应于第四个月的开始T1.
。
T1 = DateTime(2014,04,01);t = dateshift(t1,“开始”那“月”,0:4)
t =1x5 DateTime.01- 4 -2014 01- 5 -2014 01- 6 -2014 01- 7 -2014 01- 8月
日期在月底
从2014年4月1日开始生成一系列月末日期。
T1 = DateTime(2014,04,01);t = dateshift(t1,“结束”那“月”0:2)
t =1x3 DateTime.30 - 4月- 2014年31日- 2014年5月- 2014年- 6月30日
确定每个日期之间的天数。
dt = caldiff(t,'天')
dt =1x2日历31 d 30 d
日期不是等间隔的。
其他日期和时间单位
您可以指定其他时间单位,如一周,日和小时。
t1 = datetime ('现在')
t1 =datetime23 - 2月- 2021 14:54:32
t = dateshift(t1,“开始”那'小时',0:4)
t =1x5 DateTime.列1到3 23-Feb-2021 14:00:00 23-Feb-2021 15:00:00 23-Feb-2021 16:00:00列4到5 23-Feb-2021 17:00:00 23-2月2021 18:00:00
以前出现的日期和时间
生成以前一个小时开始的datetime值序列。最后一个输入的负整数dateshift
对应于早先的DateTime值T1.
。
t = dateshift(t1,“开始”那'小时',-1:1)
t =1x3 DateTime.23-Feb-2021 13:00:00 23-Feb-2021 14:00:00 23-Feb-2021 15:00:00