Main Content

calendarDuration

가변 길이 달력 단위의 시간 길이

설명

calendarDuration형 배열에 있는 값은 경과 시간을 가변 길이의 달력 단위로 나타냅니다. 예를 들어, 한 달의 일수는 그 해의 특정 달에 따라 달라집니다. 달력 기간은 일광 절약 시간제 변동과 윤년을 고려해 계산합니다. calendarDuration형 배열을 사용하여 일 수, 개월 수와 같은 달력 단위와 관련된 datetime형 배열에서 계산을 단순화할 수 있습니다.

The datetime data type represents points in time, while the duration and calendarDuration data types represent elapsed time using fixed-length and calendar time units, respectively.

생성

calyears, calquarters, calmonths, calweeks, caldays 함수를 사용하여 시간 단위를 지정한 calendarDuration형 배열을 만들 수 있습니다. 예를 들어, 경과 시간이 달력상의 1, 2, 3개월로 이루어진 배열을 만들려면 calmonths 함수를 사용하십시오.

M = calmonths(1:3)
M = 

  1×3 calendarDuration array

   1mo   2mo   3mo

아래에서 설명하는 calendarDuration 함수를 사용하여 calendarDuration형 배열을 만들 수 있습니다.

설명

예제

L = calendarDuration(Y,M,D)는 연수, 월수, 일수가 각각 Y, M, D로 지정된 숫자형 배열에서 calendarDuration형 배열을 만듭니다.

L = calendarDuration(Y,M,D,H,MI,S)는 각각 H, MI, S로 지정된 시간, 분, 초도 포함합니다.

예제

L = calendarDuration(Y,M,D,T)는 연수, 월수, 일수가 포함된 숫자형 배열과 경과 시간이 포함된 duration형 배열 T에서 calendarDuration형 배열을 만듭니다.

L = calendarDuration(X)는 숫자형 행렬에서 calendarDuration형 배열을 만듭니다.

예제

L = calendarDuration(___,'Format',displayFormat)LFormat 속성값으로 displayFormat을 추가로 지정합니다. Format 속성은 L의 표시를 변경하지만 인수의 값은 변경하지 않습니다. 이 구문은 위에 열거된 구문에서 사용된 모든 인수와 함께 사용할 수 있습니다.

입력 인수

모두 확장

년, 월, 일로 숫자형 배열로 지정됩니다. 이러한 배열 중 어떤 값이든 스칼라일 수 있으며, 스칼라가 아닌 배열은 서로 크기가 동일해야 합니다. Y,M,D는 정수 값만 포함해야 합니다.

12보다 큰 월 값을 지정하는 것은 월수와 더불어 연수를 지정하는 것과 같습니다. 예를 들어, 25개월은 2년 1개월과 같습니다. 그러나 일 값은 월수에 상응하지 않습니다. 왜냐하면 한 달의 일수는 고정되어 있지 않으며 특정 날짜/시간에 calendarDuration형을 추가하기 전까지 확인할 수 없기 때문입니다.

예: L = calendarDuration(2,10,24)는 2년, 10개월, 24일로 구성된 calendarDuration형을 반환합니다.

시간, 분, 초로 숫자형 배열로 지정됩니다. 이러한 배열 중 어떤 값이든 스칼라일 수 있으며, 스칼라가 아닌 배열은 서로 크기가 동일해야 합니다. 소수 초(Fractional Second)를 S의 일부로 지정합니다. H 배열과 MI 배열은 정수 값만 포함해야 합니다.

12보다 큰 월 값을 지정하는 것은 월수와 더불어 연수를 지정하는 것과 같습니다. 예를 들어, 25개월은 2년 1개월과 같습니다. 60보다 큰 분 값은 시간 값으로 넘어갑니다. 60보다 큰 초 값은 분으로 넘어갑니다. 그러나 일 값은 월수에 상응하지 않습니다. 왜냐하면 한 달의 일수는 고정되어 있지 않으며 특정 날짜/시간에 달력 기간을 더하기 전까지 확인할 수 없기 때문입니다. 마찬가지로, 시간 값은 달력상의 일수에 상응하지 않습니다.

예: L = calendarDuration(2,10,24,12,45,07.451)은 2년, 10개월, 24일, 12시간, 45분, 7.451초로 구성된 calendarDuration형을 반환합니다.

경과 시간으로, duration형 배열로 지정됩니다. TY, M, D 입력 인수와 크기가 같거나 스칼라여야 합니다.

예: T = hours(5); L = calendarDuration(2,10,24,T)L에 5시간을 더합니다.

년, 월, 일, 시간(선택 사항)으로, 숫자형 행렬로 지정됩니다. X에는 3개 열 또는 6개 열이 있어야 합니다. 처음 3개 열은 각각 연수, 월수, 일수를 포함합니다. X에 6개의 열이 있으면 마지막 3개 열은 각각 시간, 분, 초를 포함합니다.

모든 열이 정수 값을 포함해야 합니다. 단, 여섯 번째 열은 예외입니다. 여섯 번째 열에는 소수 초(Fractional Second)를 지정할 수 있습니다.

예: L = calendarDuration([2 10 24])는 2년, 10개월, 24일로 구성된 calendarDuration형을 반환합니다.

예: L = calendarDuration([2 10 24 12 45 07.451])은 2년, 10개월, 24일, 12시간, 45분, 7.451초로 구성된 calendarDuration형을 반환합니다.

속성

모두 확장

calendarDuration형의 표시 형식으로, 문자 y, q, m, w, d, t를 순서대로 조합한 형식으로 지정됩니다. 형식에는 m, d, t가 포함되어야 합니다.

문자단위필수 여부
y아니요
q사분기(3개월을 한 단위로 함)아니요
m
w아니요
d
t시간(시간, 분, 초)

소수 초(Fractional Second)에 표시할 자릿수를 지정하려면 format 함수를 사용하십시오.

날짜 또는 시간 성분의 값이 0이면 해당 성분은 표시되지 않습니다.

예: L.Format = 'yqmdt'는 해당 시간 성분과 함께 L의 각 값을 역년, 분기, 월, 일 수로 표시합니다.

예제

모두 축소

datetime형 값을 생성합니다.

D = datetime(2017,7,1)
D = datetime
   01-Jul-2017

각 값이 다른 달의 첫 날에 시작하는 datetime형 배열을 생성합니다. 이러한 배열을 생성하는 한 가지 편리한 방법은 D에 달력상의 월수로 구성된 배열을 추가하는 것입니다.

먼저, calmonths 함수를 사용하여 달력상의 월수로 구성된 배열을 생성합니다.

C = calmonths(0:3)
C = 1x4 calendarDuration
   0mo   1mo   2mo   3mo

그런 다음, DC를 추가합니다. C는 calendarDuration형 배열이므로, 이 연산은 월별로 일수가 다를 수 있다는 사실을 고려합니다.

M = D + C
M = 1x4 datetime
   01-Jul-2017   01-Aug-2017   01-Sep-2017   01-Oct-2017

윤년과 일광 절약 시간제로 인해, 달력상의 연수, 월수, 일수 길이가 다를 수 있습니다. 이러한 다양한 시간 길이를 수용하려면 datetime형 배열에 대한 산술 연산에 calendarDuration형 배열을 사용하십시오.

L = calendarDuration(1,3,15)
L = calendarDuration
   1y 3mo 15d

일수를 나타내는 숫자형 배열을 만듭니다.

D = [1 3;4 2]
D = 2×2

     1     3
     4     2

경과 시간(시간 단위)을 나타내는 duration형 배열을 만듭니다. 이 중 한 요소는 25시간을 지정하는데 이는 1일을 넘는 시간입니다.

T = hours([1 2; 25 12])
T = 2x2 duration
    1 hr    2 hr
   25 hr   12 hr

calendarDuration형 배열을 만듭니다. 연과 월에 대해 입력 인수 D, T, 스칼라 값을 지정합니다. 두 번째 입력값 13은 한 해 월 수보다 많은 월 수를 지정합니다.

L = calendarDuration(1,13,D,T)
L = 2x2 calendarDuration
    2y 1mo 1d 1h 0m 0s    2y 1mo 3d 2h 0m 0s
   2y 1mo 4d 25h 0m 0s   2y 1mo 2d 12h 0m 0s

12보다 큰 월 값은 표시될 때 연으로 넘어갑니다. 그러나, 24보다 큰 시간 값은 표시될 때 일 수로 넘어가지 않습니다. 일광 절약 시간제로 인해, 달력상의 일에 있는 시간이 꼭 24시간이지는 않습니다.

calendarDuration형 배열을 만들고 월, 주, 일, 시간으로 값을 표시하는 형식을 지정합니다.

L = calendarDuration(1,1,5:9,'Format','mwdt')
L = 1x5 calendarDuration
      13mo 5d      13mo 6d      13mo 1w   13mo 1w 1d   13mo 1w 2d

형식에 연수에 대한 'y'가 포함되지 않으므로, 1년 1개월로 구성된 입력 값은 합계, 13mo로 표시됩니다. 't' 값은 지정해야 하지만 시간, 분, 초가 모두 0이면 시간 성분은 표시되지 않습니다.

  • calendarDuration형 배열을 받거나 반환하는 함수에 대한 자세한 내용은 날짜/시간(Date and Time) 항목을 참조하십시오.

  • 둘 이상의 단위가 포함된 calendarDuration형 배열을 datetime형 값에 더할 경우 MATLAB®은 항상 더 큰 단위를 먼저 더합니다. t가 datetime형 값일 경우 다음 명령은

    t + calendarDuration(1,2,3)
    다음과 같습니다.
    t + calyears(1) + calmonths(2) + caldays(3)

확장 기능

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2014b에 개발됨