본문 바로가기

MATLAB/ㄴ 기타

7. 날짜/시간 산술 연산

이 예제에서는 날짜/시간 값을 더하거나 빼서 정확한 단위나 달력 단위로 미래날짜, 과거날짜, 경과기간을 계산하는 방법을

보여줍니다.

다른 MATLAB 데이터형에 이러한 연산자를 사용할 때와 동일한 방식으로 날짜/시간 배열을 더하고, 빼고, 곱하고

나눌 수 있습니다.

 


 

1) datetime형 배열에 기간을 더하거나 빼기

datetime형 스칼라를 생성합니다. 기본적으로 datetime형 배열은 표준 시간대와 연결되지 않습니다.

 

시간 시퀀스를 더하여 미래의 특정 시간을 구합니다.

 

t2의 각 datetime형 값 쌍 간의 차분이 1시간인지 확인합니다.

 

diff는 정확한 시간, 분, 초 숫자값으로 기간을 반환합니다.

날짜/시간에서 분 시퀀스를 빼서 과거의 특정 시간을 구합니다

 

숫자형 배열을 datetime형 배열에 더합니다.

MATLAB은 숫자형 배열의 각 값을 정확한 24시간 일수로 처리합니다.

 


 

2) 표준 시간대를 갖는 날짜/시간에 더하기

서로 다른 표준 시간대의 datetime형 값을 사용하거나 일광 절약 시간제 변동을 고려하려는 경우

표준 시간대와 연결된 datetime형 배열을 사용합니다.

뉴욕의 2014년 3월 8일을 나타내는 datetime형 스칼라를 생성합니다.

 

고정 길이(24시간) 일의 시퀀스를 더하여 미래의 특정 시간을 구합니다.

 

일광 절약 시간제가 2014년 3월 9일에 실행되었으므로 t2의 세 번째 datetime형 값이 자정에 해당되지 않습니다.

t2의 각 datetime형 값 쌍 간의 차분이 24시간인지 확인합니다.

 

3월 9일 시행된 일광 절약 시간제 변동으로 인해 t3의 각 datetime형 값 쌍 간의 차분이 항상 24시간은 아닙니다.

 


 

3) 달력 기간을 datetime형 배열에 더하기

2014년 1월 31일에 달력상의 월수에 해당하는 숫자 값을 더합니다.

 

t2의 각 날짜/시간은 매월 마지막 날에 해당합니다.

caldiff 함수를 사용하여 달력상의 일수에 해당하는 숫자 값으로 t2의 각 datetime형 값 쌍 간의 차분을 계산합니다.

 

각 월은 서로 다른 일수로 구성되므로 dt의 연속된 datetime형 값 간의 일수가 항상 동일하지는 않습니다.

2014년 1월 31일에 달력상의 연수에 해당하는 숫자 값을 더합니다.

 

caldiff 함수를 사용하여 달력상의 일수에 해당하는 숫자 값으로 t2의 각 datetime형 값 쌍 간의 차분을 계산합니다.

 

2016년은 윤년(366일)이므로 dt의 연속된 daetime형 값 간의 일수가 항상 동일하지는 않습니다.

calquarters, calweeks, caldays 함수를 사용하여 달력상의 분기 수, 달력 상의 주 수, 달력상의 일수를 나타내는 배열을

생성하고, 이러한 배열을 datetime형 배열에서 더하거나 뺄 수 있습니다.

달력 기간 더하기는 가환성(Commutative)이 없습니다.

둘 이상의 calendarDuration형 배열을 날짜/시간에 더하는 경우 MATLAB은 명령에 표시되는 순서로 배열을 더합니다.

 

2014년 1월 31일에 달력상의 월수 3개월과 달력상의 일수 30일을 더합니다.

 

아래에서는 먼저, 달력상의 일수 30일을 동일한 날짜에 더한 다음 달력상의 월수 3개월을 더합니다.

달력 기간을 날짜/시간에 더하는 경우, 더하는 일수는 원래 날짜에 따라 달라지므로 결과는 동일하지 않습니다.

 


 

4) calendarDuration형 산술 연산

두 개의 달력 기간을 생성한 다음 합을 구합니다.

 

둘 이상의 달력 기간의 합을 구하는 경우, 12보다 큰 월수는 연수로 이월됩니다.

그러나 각 월은 다른 일수로 구성되므로 일수가 커도 월수로 이월되지는 않습니다.

 

인수 2를 곱하여 d를 늘립니다. 정수 값만 곱할 수 있으므로 calendarDuration형 값은 정수여야 합니다.

 


 

5) 정확한 단위로 경과 시간 계산

한 datetime형 배열에서 다른 datetime형 배열을 빼서 정확한 시간, 분, 초로 경과 시간을 계산합니다.

datetime형 값의 시퀀스와 어제(전날)의 시작 사이의 ㅈ어확한 시간 길이를 구합니다.

 

dt는 시간:분:초의 형식의 기간을 포함합니다.

dt의 Format 속성을 변경하여 단위가 일수인 경과기간을 표시합니다.

 

인수 1.2로 dt를 곱하여 duration형 값을 스케일링합니다.

기간은 정확한 길이를 가지기 때문에 소수 값으로 곱하거나 나눌 수 있습니다.

 


 

6) 달력 단위로 경과 시간 계산

between 함수를 사용하여 두 날짜 사이에 경과된 달력상의 연수, 달력상의 월 수,달력상의 일수를 구합니다.

 


 

https://kr.mathworks.com/help/matlab/matlab_prog/compute-elapsed-time.html

 

날짜/시간 산술 연산 - MATLAB & Simulink - MathWorks 한국

이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?

kr.mathworks.com