文档

生成日期和时间序列

具有步长的端点之间的日期时间或持续时间值序列

这个例子展示了如何使用冒号(:)操作符来生成序列datetime持续时间值的创建方法与创建规则间隔的数字向量的方法相同。

使用默认步长

创建从2013年11月1日开始到2013年11月5日结束的日期时间值序列。默认步长是一个日历日。

T1 = datetime(2013,11,1,8,0,0);T2 = datetime(2013,11,5,8,0,0);T = t1:t2
t =1x5日期时间数组第1列至第3列-2013年11月01日08:00:00 -2013年11月02日08:00:00 -2013年11月03日08:00:00

指定步长

方法指定步长为2个日历日caldays函数。

T = t1:caldays(2):t2
t =1x3的日期时间数组2013年11月01日08:00:00 -2013年11月03日08:00:00

以天以外的单位指定步长。创建一个间隔18小时的日期时间值序列。

T = t1:hours(18):t2
t =1x6日期时间数组第一列至第三列-2013年11月01日08:00:00 -2013年11月02日02:00:00 -2013年11月02日20:00:00 -2013年11月4日14:00:00 -2013年11月05日08:00:00

使用分钟,函数用于使用其他固定长度的日期和时间单元创建日期时间和持续时间序列。创建0到3分钟之间的持续时间值序列,以30秒递增。

D = 0:秒(30):分(3)
d =1x7 duration数组0秒30秒60秒90秒120秒150秒180秒

比较固定长度持续时间和日历持续时间步长

指定一个时区给t1t2.在美国/ New_York时区,t1现在发生在夏令时改变之前。

t1。时区=“美国/ New_York”;t2。时区=“美国/ New_York”;

如果您创建的序列使用一个日历日的步长,那么连续之间的差异datetime价值并不总是24小时。

T = t1:t2;Dt = diff(t)
dt =1x4 duration数组24:00:00 25:00:00 24:00:00 24:00:00

创建一系列日期时间值,间隔为固定长度的一天,

T = t1:days(1):t2
t =1x5日期时间数组第1列至第3列-2013年11月01日08:00:00 -2013年11月02日08:00:00 -2013年11月03日07:00:00

验证两者之间的差异是连续的datetime取值为24小时。

Dt = diff(t)
dt =1x4 duration数组24:00:00 24:00:00 24:00:00

步长

如果以整数形式指定步长,则将其解释为24小时的天数。

T = t1: t2
t =1x5日期时间数组第1列至第3列-2013年11月01日08:00:00 -2013年11月02日08:00:00 -2013年11月03日07:00:00

添加持续时间或日历持续时间以创建日期序列

此示例展示了如何向日期时间添加持续时间或日历持续时间,以创建日期时间值序列。

创建一个日期时间标量,表示2013年11月1日上午8:00。

T1 = datetime(2013,11,1,8,0,0);

向datetime添加固定长度的小时序列。

T = t1 +小时数(0:2)
t =1x3的日期时间数组2013年11月01日08:00:00

向datetime添加一系列日历月份。

T = t1 + calmonths(1:5)
t =1x5日期时间数组第一列至第三列2013年01月12日08:00:00 01月1日08:00:00 2014年01月1日08:00:00 2014年01月2日08:00:00

每个日期时间t每月的第一天。

验证日期在t间隔1个月。

Dt = caldiff(t)
dt =1x4 calendarDuration数组1mo 1mo 1mo

确定每个日期之间的天数。

Dt = caldiff(t,“天”
dt =1x4 calendarDuration数组31d 31d 28d 31d

向日期2014年1月31日添加一些日历月,以创建一个位于每个月最后一天的日期序列。

T = datetime(2014,1,31) + calmonths(0:11)
t =1x12日期时间数组第一列至第五列2014年1月31日-2014年2月28日-2014年3月31日-2014年4月30日-2014年5月6日至10列2014年6月30日-2014年7月31日-2014年8月31日-2014年9月30日-2014年10月11日至12月30日-2014年11月31日-2014年12月31日

指定日期或持续时间序列的长度和端点

控件的实例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日期时间数组2014年4月14日-2014年5月12日-2014年9月6日-2014年7月-2014年4月8日

在1到5.5小时之间,创建6个间隔相等的持续时间序列。

A = duration(1,0,0);B = duration(5,30,0);C = linspace(A,B,6)
C =1x6 duration数组01:00:00 01:54:00 02:48:00 03:42:00 04:36:00 05:30:00

使用日历规则的日期时间值序列

控件的实例dateshift函数生成日期和时间序列,其中每个实例都遵守与日历单位或时间单位相关的规则。例如,每个日期时间必须出现在一个月的开始,一周的某一天,或一分钟的结束。序列中产生的日期时间值不一定间隔相等。

星期中的特定日期

生成由接下来三个星期一组成的日期序列。首先,确定今天的日期。

T1 = datetime()“今天”“格式”“dd-MMM-yyyy eee”
t1 =datetime16 - 3月- 2018星期五

第一个输入dateshift总是datetime要从中生成序列的数组。指定“dayofweek”作为第二个输入,指示输出序列中的datetime值必须落在一周中的特定日期。可以通过数字或名称指定星期几。例如,您可以指定星期一为2“周一”

T =移码(t1,“dayofweek”、2、1:3)
t =1x3的日期时间数组2018年3月19日星期一2018年4月2日星期一

月初的日期

生成从2014年4月1日开始的月初日期序列。指定“开始”作为第二个输入dateshift指示输出序列中的所有datetime值应该落在特定时间单位的开始。第三个输入参数定义时间单位,在本例中为月。最后一个输入dateshift可以是一个数组的整数值,指定如何t1应该转移。在这种情况下,0对应于当前月份的开始,和4对应从第四个月开始t1

T1 = datetime(2014,04,01);T =移码(t1,“开始”“月”, 0:4)
t =1x5日期时间数组2014年1月1日-2014年5月1日-2014年6月1日-2014年7月1日-2014年8月1日

月底的日期

生成从2014年4月1日开始的月末日期序列。

T1 = datetime(2014,04,01);T =移码(t1,“结束”“月”0:2)
t =1x3的日期时间数组2014.04 - 2014.05 - 2014.06

确定每个日期之间的天数。

Dt = caldiff(t,“天”
dt =1x2 calendarDuration数组31 d 30 d

日期的间隔不是相等的。

其他日期和时间单位

可以指定其他时间单位,如周、日和小时。

T1 = datetime()“现在”
t1 =datetime16 - 3月- 2018 16:57:43
T =移码(t1,“开始”“小时”, 0:4)
t =1x5日期时间数组第一列至第三列2018年3月16日16:00:00 16- 3月18日17:00:00 16- 3月18日18:00:00第四列至第五列2018年3月16日19:00:00 16- 3月18日20:00:00

以前发生的日期和时间

生成以前一小时开始的日期时间值序列。最后输入的负整数dateshift对应于之前的datetime值t1

T =移码(t1,“开始”“小时”1:1)
t =1x3的日期时间数组2018年3月16日15:00:00

另请参阅

|

这个话题有帮助吗?