主要内容

生成日期和时间序列

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

这个例子展示了如何使用冒号(:)操作符生成的序列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 =1 x5 datetime01- 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 =1 x3 datetime01- 11 -2013 08:00:00 03- 11 -2013 08:00:00 05- 11 -2013 08:00:00

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

t = t1:小时(18):t2
t =1 x6 datetimecolumn 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 =1 x7持续时间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 =1 x4持续时间24:00:00 25:00:00 24:00:00 24:00:00

创建一个datetime值序列,间隔一个固定长度的天,

t = t1:天(1):t2
t =1 x5 datetime01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 07:00:00

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

dt = diff (t)
dt =1 x4持续时间24:00:00 24:00:00 24:00:00 24:00:00 24:00:00 24:00:00

整数步长

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

t = t1:1: t2
t =1 x5 datetime01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 07:00:00

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

此示例演示如何向datetime添加持续时间或日历持续时间,以创建一个datetime值序列。

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

t1 = datetime(1 2013年,11日,8,0,0);

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

T = t1 +小时(0:2)
t =1 x3 datetime01- 11 -2013 08:00:00 01- 11 -2013 09:00:00 01- 11 -2013 10:00:00

将日历月序列添加到日期时间。

T = t1 + calmonths(1:5)
t =1 x5 datetimecolumn 1 to 3 01-Dec-2013 08:00:00 01-Jan-2014 08:00:00 01-Feb-2014 08:00:00

每一个datetimet发生在每个月的第一天。

确认日期t间隔1个月。

dt = caldiff (t)
dt =1 x4 calendarDuration一个月一个月一个月一个月

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

dt = caldiff (t)“天”
dt =1 x4 calendarDuration31d 31d 28d 31d

在日期(2014年1月31日)中添加一些日历月份,以创建一个落在每个月最后一天的日期序列。

T = datetime(2014,1,31) + calmonths(0:11)
t =1 x12 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函数在两个指定的端点之间创建等间距的datetime或duration值。

创建一个由2014年4月14日到2014年8月4日之间等间隔的5个日期组成的序列。首先,定义端点。

一个= datetime(2014年,04 14);B = datetime(2014, 08年,04);

第三个输入linspace指定在端点之间生成的线性间隔点的数目。

C = linspace (A, B, 5)
C =1 x5 datetime2014年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 =1 x6持续时间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 =datetime2021年- 2月23日星期二

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

t = dateshift (t1,“dayofweek”、2、1:3)
t =1 x3 datetime01-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 =1 x5 datetime01- 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 =1 x3 datetime30 - 4月- 2014年31日- 2014年5月- 2014年- 6月30日

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

dt = caldiff (t)“天”
dt =1 x2 calendarDuration31 d 30 d

日期不是等间隔的。

其他日期和时间单位

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

t1 = datetime (“现在”
t1 =datetime23 - 2月- 2021 14:54:32
t = dateshift (t1,“开始”“小时”, 0:4)
t =1 x5 datetime列4至5列23-Feb-2021 17:00:00 23-Feb-2021 18:00:00 23-Feb-2021 18:00:00

以前出现的日期和时间

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

t = dateshift (t1,“开始”“小时”1:1)
t =1 x3 datetime23-Feb-2021 13:00:00 23-Feb-2021 14:00:00 23-Feb-2021 15:00:00

另请参阅

|