主要内容

生成日期和时间序列

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

此示例显示如何使用冒号(:)运算符生成序列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

也可以看看

|