Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Generar secuencia de fechas y hora

Secuencia de DateTime o valores de duración entre extremos con tamaño de paso

Este ejemplo muestra cómo utilizar los dos puntos (:) operador para generar secuencias de o valores de la misma manera que se crean vectores numéricos espaciados regularmente.datetimeduration

Utilice tamaño de paso predeterminado

Cree una secuencia de valores DATETIME a partir del 1 de noviembre de 2013 y terminando el 5 de noviembre de 2013. El tamaño de paso predeterminado es un día natural.

t1 = datetime(2013,11,1,8,0,0); t2 = datetime(2013,11,5,8,0,0); t = t1:t2
t = 1x5 datetime array
Columns 1 through 3

   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 08:00:00

Columns 4 through 5

   04-Nov-2013 08:00:00   05-Nov-2013 08:00:00

Especifique tamaño de paso

Especifique un tamaño de paso de 2 días naturales utilizando la función.caldays

t = t1:caldays(2):t2
t = 1x3 datetime array
   01-Nov-2013 08:00:00   03-Nov-2013 08:00:00   05-Nov-2013 08:00:00

Especifique un tamaño de paso en unidades que no sean días. Cree una secuencia de valores DATETIME espaciados con 18 horas de diferencia.

t = t1:hours(18):t2
t = 1x6 datetime array
Columns 1 through 3

   01-Nov-2013 08:00:00   02-Nov-2013 02:00:00   02-Nov-2013 20:00:00

Columns 4 through 6

   03-Nov-2013 14:00:00   04-Nov-2013 08:00:00   05-Nov-2013 02:00:00

Utilice las funciones, y, para crear secuencias de fecha y hora con otras unidades de fechas y de tiempo de longitud fija.yearsdaysminutesseconds Cree una secuencia de valores de duración entre 0 y 3 minutos, incrementados por 30 segundos.

d = 0:seconds(30):minutes(3)
d = 1x7 duration array
     0 sec    30 sec    60 sec    90 sec   120 sec   150 sec   180 sec

Compare los tamaños de los pasos de duración fija y duración del calendario

Asigne una zona horaria a y.t1t2 En la zona horaria, ahora se produce justo antes de un cambio de horario de verano.America/New_Yorkt1

t1.TimeZone = 'America/New_York'; t2.TimeZone = 'America/New_York';

Si crea la secuencia utilizando un tamaño de paso de un día natural, la diferencia entre los valores sucesivos no siempre es de 24 horas.datetime

t = t1:t2; dt = diff(t)
dt = 1x4 duration array
   24:00:00   25:00:00   24:00:00   24:00:00

Cree una secuencia de valores DATETIME separados por un día de longitud fija,

t = t1:days(1):t2
t = 1x5 datetime array
Columns 1 through 3

   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 07:00:00

Columns 4 through 5

   04-Nov-2013 07:00:00   05-Nov-2013 07:00:00

Compruebe que la diferencia entre los valores sucesivos es de 24 horas.datetime

dt = diff(t)
dt = 1x4 duration array
   24:00:00   24:00:00   24:00:00   24:00:00

Tamaño de paso entero

Si especifica un tamaño de paso en términos de un entero, se interpreta como un número de días de 24 horas.

t = t1:1:t2
t = 1x5 datetime array
Columns 1 through 3

   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 07:00:00

Columns 4 through 5

   04-Nov-2013 07:00:00   05-Nov-2013 07:00:00

Agregar duración o duración del calendario para crear secuencia de fechas

En este ejemplo se muestra cómo agregar una duración o una duración de calendario a una fecha y hora para crear una secuencia de valores DateTime.

Cree un escalar DateTime que represente el 1 de noviembre de 2013 a las 8:00 A.M.

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

Agregue una secuencia de horas de longitud fija a la fecha y hora.

t = t1 + hours(0:2)
t = 1x3 datetime array
   01-Nov-2013 08:00:00   01-Nov-2013 09:00:00   01-Nov-2013 10:00:00

Agregue una secuencia de meses de calendario a la fecha y hora.

t = t1 + calmonths(1:5)
t = 1x5 datetime array
Columns 1 through 3

   01-Dec-2013 08:00:00   01-Jan-2014 08:00:00   01-Feb-2014 08:00:00

Columns 4 through 5

   01-Mar-2014 08:00:00   01-Apr-2014 08:00:00

Cada fecha y hora se produce el primer día de cada mes.t

Verifique que las fechas en están espaciadas 1 mes de diferencia.t

dt = caldiff(t)
dt = 1x4 calendarDuration array
   1mo   1mo   1mo   1mo

Determine el número de días entre cada fecha.

dt = caldiff(t,'days')
dt = 1x4 calendarDuration array
   31d   31d   28d   31d

Agregue varios meses naturales a la fecha, 31 de enero de 2014, para crear una secuencia de fechas que caen el último día de cada mes.

t = datetime(2014,1,31) + calmonths(0:11)
t = 1x12 datetime array
Columns 1 through 5

   31-Jan-2014   28-Feb-2014   31-Mar-2014   30-Apr-2014   31-May-2014

Columns 6 through 10

   30-Jun-2014   31-Jul-2014   31-Aug-2014   30-Sep-2014   31-Oct-2014

Columns 11 through 12

   30-Nov-2014   31-Dec-2014

Especifique longitud y puntos finales de fecha o secuencia de duración

En este ejemplo se muestra cómo utilizar la función para crear valores de fecha y hora igual espaciados entre dos extremos especificados.linspace

Cree una secuencia de cinco fechas igualmente espaciadas entre el 14 de abril de 2014 y el 4 de agosto de 2014. Primero, defina los puntos finales.

A = datetime(2014,04,14); B = datetime(2014,08,04);

La tercera entrada para especificar el número de puntos espaciados linealmente que se generarán entre los puntos finales.linspace

C = linspace(A,B,5)
C = 1x5 datetime array
   14-Apr-2014   12-May-2014   09-Jun-2014   07-Jul-2014   04-Aug-2014

Cree una secuencia de seis duraciones igualmente espaciadas entre 1 y 5,5 horas.

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

Secuencia de valores DATETIME mediante reglas de calendario

En este ejemplo se muestra cómo utilizar la función para generar secuencias de fechas y horas en las que cada instancia obedece a una regla relacionada con una unidad de calendario o una unidad de tiempo.dateshift Por ejemplo, cada fecha y hora debe producirse al principio de un mes, en un día concreto de la semana o al final de un minuto. Los valores DATETIME resultantes de la secuencia no están necesariamente espaciados por igual.

Fechas en el día específico de la semana

Genere una secuencia de fechas que conste de las siguientes tres apariciones del lunes. Primero, define la fecha de hoy.

t1 = datetime('today','Format','dd-MMM-yyyy eee')
t1 = datetime
   03-Feb-2019 Sun

La primera entrada es siempre la matriz desde la que se desea generar una secuencia.dateshiftdatetime Especifique como la segunda entrada para indicar que los valores DATETIME de la secuencia de salida deben caer en un día específico de la semana.'dayofweek' Puede especificar el día de la semana, ya sea por número o por nombre. Por ejemplo, puede especificar el lunes ya sea como o.2'Monday'

t = dateshift(t1,'dayofweek',2,1:3)
t = 1x3 datetime array
   04-Feb-2019 Mon   11-Feb-2019 Mon   18-Feb-2019 Mon

Fechas al inicio del mes

Genere una secuencia de fechas de inicio de mes a partir del 1 de abril de 2014. Especifique como la segunda entrada para indicar que todos los valores DATETIME de la secuencia de salida deben estar al principio de una unidad de tiempo determinada.'start'dateshift El tercer argumento de entrada define la unidad de tiempo, en este caso, el mes. La última entrada puede ser una matriz de valores enteros que especifica cómo se debe desplazar.dateshiftt1 En este caso, corresponde al inicio del mes actual, y corresponde al inicio del cuarto mes desde.04t1

t1 = datetime(2014,04,01); t = dateshift(t1,'start','month',0:4)
t = 1x5 datetime array
   01-Apr-2014   01-May-2014   01-Jun-2014   01-Jul-2014   01-Aug-2014

Fechas al final del mes

Genere una secuencia de fechas de fin de mes a partir del 1 de abril de 2014.

t1 = datetime(2014,04,01); t = dateshift(t1,'end','month',0:2)
t = 1x3 datetime array
   30-Apr-2014   31-May-2014   30-Jun-2014

Determine el número de días entre cada fecha.

dt = caldiff(t,'days')
dt = 1x2 calendarDuration array
   31d   30d

Las fechas no están igualmente espaciadas.

Otras unidades de fechas y horas

Puede especificar otras unidades de tiempo, como semana, día y hora.

t1 = datetime('now')
t1 = datetime
   03-Feb-2019 10:17:07

t = dateshift(t1,'start','hour',0:4)
t = 1x5 datetime array
Columns 1 through 3

   03-Feb-2019 10:00:00   03-Feb-2019 11:00:00   03-Feb-2019 12:00:00

Columns 4 through 5

   03-Feb-2019 13:00:00   03-Feb-2019 14:00:00

Apariciones previas de fechas y hora

Genere una secuencia de valores DateTime que comiencen con la hora anterior. Los enteros negativos en la última entrada corresponden a valores DATETIME anteriores a.dateshiftt1

t = dateshift(t1,'start','hour',-1:1)
t = 1x3 datetime array
   03-Feb-2019 09:00:00   03-Feb-2019 10:00:00   03-Feb-2019 11:00:00

Consulte también

|