이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
날짜/시간 산술 연산
이 예제에서는 날짜/시간 값을 더하거나 빼서 정확한 단위나 달력 단위로 미래 날짜, 과거 날짜, 경과 기간을 계산하는 방법을 보여줍니다. 다른 MATLAB® 데이터형에 이러한 연산자를 사용할 때와 동일한 방식으로 날짜/시간 배열을 더하고, 빼고, 곱하고 나눌 수 있습니다. 그러나, 날짜/시간에만 고유한 몇 가지 동작이 있습니다.
datetime형 배열에 기간을 더하거나 빼기
datetime형 스칼라를 생성합니다. 기본적으로, datetime형 배열은 표준 시간대와 연결되지 않습니다.
t1 = datetime('now')
t1 = datetime
24-Jul-2022 22:19:14
시간 시퀀스를 더하여 미래의 특정 시간을 구합니다.
t2 = t1 + hours(1:3)
t2 = 1x3 datetime
24-Jul-2022 23:19:14 25-Jul-2022 00:19:14 25-Jul-2022 01:19:14
t2
의 각 datetime형 값 쌍 간의 차분이 1시간인지 확인합니다.
dt = diff(t2)
dt = 1x2 duration
01:00:00 01:00:00
diff
는 정확한 시간, 분, 초 숫자 값으로 기간을 반환합니다.
날짜/시간에서 분 시퀀스를 빼서 과거의 특정 시간을 구합니다.
t2 = t1 - minutes(20:10:40)
t2 = 1x3 datetime
24-Jul-2022 21:59:14 24-Jul-2022 21:49:14 24-Jul-2022 21:39:14
숫자형 배열을 datetime
형 배열에 더합니다. MATLAB은 숫자형 배열의 각 값을 정확한 24시간 일수로 처리합니다.
t2 = t1 + [1:3]
t2 = 1x3 datetime
25-Jul-2022 22:19:14 26-Jul-2022 22:19:14 27-Jul-2022 22:19:14
표준 시간대를 갖는 날짜/시간에 더하기
서로 다른 표준 시간대의 datetime형 값을 사용하거나 일광 절약 시간제 변동을 고려하려는 경우 표준 시간대와 연결된 datetime형 배열을 사용합니다. 뉴욕의 2014년 3월 8일을 나타내는 datetime
형 스칼라를 생성합니다.
t1 = datetime(2014,3,8,0,0,0,'TimeZone','America/New_York')
t1 = datetime
08-Mar-2014
고정 길이(24시간) 일의 시퀀스를 더하여 미래의 특정 시간을 구합니다.
t2 = t1 + days(0:2)
t2 = 1x3 datetime
08-Mar-2014 00:00:00 09-Mar-2014 00:00:00 10-Mar-2014 01:00:00
일광 절약 시간제가 2014년 3월 9일에 시행되었으므로 t2
의 세 번째 datetime형 값이 자정에 해당하지 않습니다.
t2
의 각 datetime형 값 쌍 간의 차분이 24시간인지 확인합니다.
dt = diff(t2)
dt = 1x2 duration
24:00:00 24:00:00
years
, hours
, minutes
, seconds
함수의 출력값을 더하여 각각 연도, 시간, 분, 초와 같은 다른 단위의 고정 길이 기간을 더할 수 있습니다.
일광 절약 시간제 변동을 고려하려면 duration형 대신 calendarDuration형을 사용해야 합니다. calendarDuration형은 datetime형 값에 더하거나 이 값에서 뺄 때 일광 절약 시간제 변동을 고려합니다.
달력상의 일수를 t1
에 더합니다.
t3 = t1 + caldays(0:2)
t3 = 1x3 datetime
08-Mar-2014 09-Mar-2014 10-Mar-2014
3월 9일 시행된 일광 절약 시간제 변동으로 인해 t3
의 각 datetime형 값 쌍 간의 차분이 항상 24시간은 아닙니다.
dt = diff(t3)
dt = 1x2 duration
24:00:00 23:00:00
달력 기간을 datetime형 배열에 더하기
2014년 1월 31일에 달력상의 월수에 해당하는 숫자 값을 더합니다.
t1 = datetime(2014,1,31)
t1 = datetime
31-Jan-2014
t2 = t1 + calmonths(1:4)
t2 = 1x4 datetime
28-Feb-2014 31-Mar-2014 30-Apr-2014 31-May-2014
t2
의 각 날짜/시간은 매월 마지막 날에 해당합니다.
caldiff
함수를 사용하여 달력상의 일수에 해당하는 숫자 값으로 t2
의 각 datetime형 값 쌍 간의 차분을 계산합니다.
dt = caldiff(t2,'days')
dt = 1x3 calendarDuration
31d 30d 31d
각 월은 서로 다른 일수로 구성되므로 dt
의 연속된 datetime형 값 간의 일수가 항상 동일하지는 않습니다.
2014년 1월 31일에 달력상의 연수에 해당하는 숫자 값을 더합니다.
t2 = t1 + calyears(0:4)
t2 = 1x5 datetime
31-Jan-2014 31-Jan-2015 31-Jan-2016 31-Jan-2017 31-Jan-2018
caldiff
함수를 사용하여 달력상의 일수에 해당하는 숫자 값으로 t2
의 각 datetime형 값 쌍 간의 차분을 계산합니다.
dt = caldiff(t2,'days')
dt = 1x4 calendarDuration
365d 365d 366d 365d
2016년은 윤년(366일)이므로 dt
의 연속된 datetime형 값 간의 일수가 항상 동일하지는 않습니다.
calquarters
, calweeks
, caldays
함수를 사용하여 달력상의 분기 수, 달력상의 주 수, 달력상의 일수를 나타내는 배열을 생성하고, 이러한 배열을 datetime형 배열에서 더하거나 뺄 수 있습니다.
달력 기간 더하기는 가환성(Commutative)이 없습니다. 둘 이상의 calendarDuration
형 배열을 날짜/시간에 더하는 경우 MATLAB은 명령에 표시되는 순서로 배열을 더합니다.
2014년 1월 31일에 달력상의 월수 3개월과 달력상의 일수 30일을 더합니다.
t2 = datetime(2014,1,31) + calmonths(3) + caldays(30)
t2 = datetime
30-May-2014
아래에서는 먼저, 달력상의 일수 30일을 동일한 날짜에 더한 다음 달력상의 월수 3개월을 더합니다. 달력 기간을 날짜/시간에 더하는 경우, 더하는 일수는 원래 날짜에 따라 달라지므로 결과는 동일하지 않습니다.
t2 = datetime(2014,1,31) + caldays(30) + calmonths(3)
t2 = datetime
02-Jun-2014
calendarDuration형 산술 연산
두 개의 달력 기간을 생성한 다음 합을 구합니다.
d1 = calyears(1) + calmonths(2) + caldays(20)
d1 = calendarDuration
1y 2mo 20d
d2 = calmonths(11) + caldays(23)
d2 = calendarDuration
11mo 23d
d = d1 + d2
d = calendarDuration
2y 1mo 43d
둘 이상의 달력 기간의 합을 구하는 경우, 12보다 큰 월수는 연수로 이월됩니다. 그러나, 각 월은 다른 일수로 구성되므로 일수가 커도 월수로 이월되지는 않습니다.
인수 2를 곱하여 d
를 늘립니다. 정수 값만 곱할 수 있으므로 calendarDuration형 값은 정수여야 합니다.
2*d
ans = calendarDuration
4y 2mo 86d
정확한 단위로 경과 시간 계산
한 datetime
형 배열에서 다른 datetime형 배열을 빼서 정확한 시간, 분, 초로 경과 시간을 계산합니다.
datetime형 값의 시퀀스와 어제(전날)의 시작 사이의 정확한 시간 길이를 구합니다.
t2 = datetime('now') + caldays(1:3)
t2 = 1x3 datetime
25-Jul-2022 22:19:15 26-Jul-2022 22:19:15 27-Jul-2022 22:19:15
t1 = datetime('yesterday')
t1 = datetime
23-Jul-2022
dt = t2 - t1
dt = 1x3 duration
70:19:15 94:19:15 118:19:15
whos dt
Name Size Bytes Class Attributes dt 1x3 40 duration
dt
는 시간:분:초 형식의 기간을 포함합니다.
dt
의 Format
속성을 변경하여 단위가 일수인 경과 기간을 표시합니다.
dt.Format = 'd'
dt = 1x3 duration
2.93 days 3.93 days 4.93 days
인수 1.2로 dt
를 곱하여 duration형 값을 스케일링합니다. 기간은 정확한 길이를 가지기 때문에 소수 값으로 곱하거나 나눌 수 있습니다.
dt2 = 1.2*dt
dt2 = 1x3 duration
3.5161 days 4.7161 days 5.9161 days
달력 단위로 경과 시간 계산
between
함수를 사용하여 두 날짜 사이에 경과된 달력상의 연수, 달력상의 월 수, 달력상의 일수를 구합니다.
t1 = datetime('today')
t1 = datetime
24-Jul-2022
t2 = t1 + calmonths(0:2) + caldays(4)
t2 = 1x3 datetime
28-Jul-2022 28-Aug-2022 28-Sep-2022
dt = between(t1,t2)
dt = 1x3 calendarDuration
4d 1mo 4d 2mo 4d