Main Content

날짜/시간 시퀀스 생성하기

양 끝점 간 간격을 스텝 크기로 구분한 datetime형 시퀀스나 duration형 시퀀스 생성하기

이 예제에서는 규칙적인 간격의 숫자형 벡터를 생성하는 것과 동일한 방식으로 콜론(:) 연산자를 사용하여 datetime형 값 또는 duration형 값 시퀀스를 생성하는 방법을 보여줍니다.

디폴트 스텝 크기 사용

2013년 11월 1일에 시작하여 2013년 11월 5일에 끝나는 datetime형 값 시퀀스를 생성합니다. 디폴트 스텝 크기는 달력상의 1일입니다.

t1 = datetime(2013,11,1,8,0,0);
t2 = datetime(2013,11,5,8,0,0);
t = t1:t2
t = 1x5 datetime
   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 08:00:00   04-Nov-2013 08:00:00   05-Nov-2013 08:00:00

스텝 크기 지정

caldays 함수를 사용하여 달력상의 일수로 2일의 스텝 크기를 지정합니다.

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

일수 이외의 단위로 스텝 크기를 지정합니다. 18시간 간격으로 datetime형 값 시퀀스를 생성합니다.

t = t1:hours(18):t2
t = 1x6 datetime
   01-Nov-2013 08:00:00   02-Nov-2013 02:00:00   02-Nov-2013 20:00:00   03-Nov-2013 14:00:00   04-Nov-2013 08:00:00   05-Nov-2013 02:00:00

years, days, minutes, seconds 함수를 사용하여 고정 길이 날짜/시간 단위를 사용하면, datetime형 시퀀스나 duration형 시퀀스를 만들 수 있습니다. 0분 ~ 3분 범위에서 30초 단위로 증분하는 duration형 값 시퀀스를 생성합니다.

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

고정 길이 duration형 및 calendarDuration형 스텝 크기 비교

t1t2에 표준 시간대를 할당합니다. America/New_York 표준 시간대에서, t1은 일광 절약 시간제 해제 바로 전날입니다.

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

스텝 크기를 달력상의 1일로 하여 시퀀스를 생성하면 연속된 datetime형 값 간의 차분이 항상 24시간이 되지는 않습니다.

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

1일 고정 길이 간격으로 datetime형 값 시퀀스를 생성합니다.

t = t1:days(1):t2
t = 1x5 datetime
   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 07:00:00   04-Nov-2013 07:00:00   05-Nov-2013 07:00:00

연속된 datetime형 값 사이의 차분이 24시간인지 확인합니다.

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

정수 스텝 크기

정수로 스텝 크기를 지정하면 24시간 일수로 해석됩니다.

t = t1:1:t2
t = 1x5 datetime
   01-Nov-2013 08:00:00   02-Nov-2013 08:00:00   03-Nov-2013 07:00:00   04-Nov-2013 07:00:00   05-Nov-2013 07:00:00

기간이나 달력 기간을 더하여 날짜 시퀀스 생성하기

이 예제에서는 기간(duration) 또는 달력 기간(calendar duration)을 날짜/시간에 더하여 datetime형 값 시퀀스를 생성하는 방법을 보여줍니다.

2013년 11월 1일 오전 8시를 나타내는 datetime형 스칼라를 생성합니다.

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

고정 길이 시간 시퀀스를 날짜/시간에 더합니다.

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

달력상의 월수(calendar months)를 나타내는 시퀀스를 날짜/시간에 더합니다.

t = t1 + calmonths(1:5)
t = 1x5 datetime
   01-Dec-2013 08:00:00   01-Jan-2014 08:00:00   01-Feb-2014 08:00:00   01-Mar-2014 08:00:00   01-Apr-2014 08:00:00

t의 각 날짜/시간은 매달 첫째 날에 해당합니다.

t의 날짜가 한 달 간격인지 확인합니다.

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

각 날짜 사이의 일수를 확인합니다.

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

달력상의 월수(calendar months)를 2014년 1월 31일 날짜에 더하여 매달 마지막 날에 해당하는 날짜 시퀀스를 생성합니다.

t = datetime(2014,1,31) + calmonths(0:11)
t = 1x12 datetime
   31-Jan-2014   28-Feb-2014   31-Mar-2014   30-Apr-2014   31-May-2014   30-Jun-2014   31-Jul-2014   31-Aug-2014   30-Sep-2014   31-Oct-2014   30-Nov-2014   31-Dec-2014

날짜 시퀀스 또는 기간 시퀀스의 길이와 끝점 지정하기

이 예제에서는 linspace 함수를 사용하여 두 개의 지정된 끝점 사이에 있는 균일한 간격의 datetime형 값 또는 duration형 값을 생성하는 방법을 보여줍니다.

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
   14-Apr-2014   12-May-2014   09-Jun-2014   07-Jul-2014   04-Aug-2014

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

달력 규칙을 사용한 datetime형 값 시퀀스

이 예제에서는 dateshift 함수를 사용하여 각 인스턴스가 달력 단위 또는 시간 단위 관련 규칙을 따르는 날짜/시간 시퀀스를 생성하는 방법을 보여줍니다. 예를 들어, 각 날짜/시간은 월의 시작 시점, 특정 요일 또는 분의 끝 시점에 해당해야 합니다. 시퀀스로 생성되는 결과 datetime형 값은 반드시 균일한 간격일 필요는 없습니다.

특정 요일의 날짜

다음 세 번의 월요일에 해당하는 날짜 시퀀스를 생성합니다. 먼저, 오늘의 날짜를 정의합니다.

t1 = datetime('today','Format','dd-MMM-yyyy eee')
t1 = datetime
   25-Jan-2024 Thu

dateshift에 대한 첫 번째 입력값은 시퀀스를 생성하는 데 사용할 datetime형 배열이어야 합니다. 'dayofweek'를 두 번째 입력값으로 지정하여 지정한 특정 요일에 해당하는 datetime형 값을 출력값 시퀀스에 나타냅니다. 요일은 숫자나 이름으로 지정할 수 있습니다. 예를 들어, 월요일은 2 또는 'Monday'로 지정할 수 있습니다.

t = dateshift(t1,'dayofweek',2,1:3)
t = 1x3 datetime
   29-Jan-2024 Mon   05-Feb-2024 Mon   12-Feb-2024 Mon

월 시작 날짜

2014년 4월 1일부터 월 시작 날짜로 구성된 시퀀스를 생성합니다. 'start'dateshift에 대한 두 번째 입력값으로 지정하여 출력 시퀀스의 모든 datetime형 값이 특정 시간 단위의 시작 시점에 해당해야 함을 나타냅니다. 세 번째 입력 인수는 시간 단위를 정의합니다. 이 경우에는 월입니다. dateshift에 대한 마지막 입력값으로 t1의 값이 이동하는 방식을 지정하는 정수형 배열이 올 수 있습니다. 이 경우, 0은 현재 달의 시작에 해당하고, 4t1에서 네 번째 달의 시작에 해당합니다.

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

월 마지막 날짜

2014년 4월 1일부터 시작하는 월 마지막 날짜 시퀀스를 생성합니다.

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

각 날짜 사이의 일수를 확인합니다.

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

날짜는 균일한 간격이 아닙니다.

기타 날짜/시간 단위

주, 일, 시간과 같은 다른 시간 단위를 지정할 수 있습니다.

t1 = datetime('now')
t1 = datetime
   25-Jan-2024 22:13:12

t = dateshift(t1,'start','hour',0:4)
t = 1x5 datetime
   25-Jan-2024 22:00:00   25-Jan-2024 23:00:00   26-Jan-2024 00:00:00   26-Jan-2024 01:00:00   26-Jan-2024 02:00:00

과거 날짜/시간 항목

과거 시간부터 시작하는 datetime형 값 시퀀스를 생성합니다. dateshift에 대한 마지막 입력값에 포함된 음의 정수는 t1보다 이전인 datetime형 값에 해당합니다.

t = dateshift(t1,'start','hour',-1:1)
t = 1x3 datetime
   25-Jan-2024 21:00:00   25-Jan-2024 22:00:00   25-Jan-2024 23:00:00

참고 항목

|