본문 바로가기
SAS/SAS 함수

【SAS 함수】 118. DATDIF 함수

by 기서무나구물 2018. 12. 6.

포스팅 목차

    118. DATDIF

     


    두 날짜 사이의 차이를 계산한다. 지정된 일수 계산 규칙에 따라 두 날짜 간의 차이를 계산한 후 해당 날짜 사이의 일수를 반환한다.

    Category: Date and Time
    MAIN

    문 법


    CALL SCAN
     (sdate,edate,basis)


     

    Arguments

    • start-date 

           시작 일자를 표시하는 SAS 날짜 값을 지정한다.

         

    Tip start-date 가 월의 마지막 날(월말)에 해당하는 경우 SAS는 해당 날짜를 한 달이 30일에 해당하는 달의 마지막 날짜로 처리한다.

     

    • end-date

           종료 일자를 표시하는 SAS 날짜 값을 지정한다.

    Tip end-date 가 월의 마지막 날(월말)에 해당하는 경우 SAS는 해당 날짜를 한 달이 30일에 해당하는 달의 마지막 날짜로 처리한다.

     


    • basis

           일수를 계산하기 위한 기준을 나타내는 문자열을 지정한다. basis의 유효한 값은 다음과 같다.

     

            '30/360'

            는 월 또는 년도에 해당하는 날짜 차이를 계산하는 경우에 실제 달력 일수에 관계없이 1개월을 30일, 1년을 360일로 처리하도록 지정한다.

     

             'ACT/ACT'

             는 날짜 차이를 계산하는 경우에 날짜 사이의 실제 일수를 사용한다. 각각의 달은 해당 월의 실제 달력 일수로 계산하고, 각 연도는 해당 연도의 실제 달력 일수를 사용한다.

     

              'ACT/360'

              는 각각의 달은 해당월의 실제 달력 일수로 계산하고, 개별 연도의 연수를 계산하는 경우 실제 일수에 관계없이 360일을 1년의 일수로 처리하여 계산한다.

     

               'ACT/365'

              는 각각의 달은 해당월의 실제 달력 일수로 계산하고, 개별 연도의 연수를 계산하는 경우 실제 일수에 관계없이 365일을 1년의 일수로 처리하여 계산한다.

     


    상세 내용

     

     기본 내용

    DATDIF 함수는 증권 업계에서 특정한 의미를 가지며, 계산 방식은 실제 일수를 계산하는 방식과 차이가 있다. 계산에는 실제 일수를 포함한 월과 연도를 사용할 수 있다. 한 달을 30일 또는 1년을 360일을 기준으로 계산할 수도 있다. 표준 증권 계산 방법에 대한 자세한 내용은 이 함수의 마지막에 있는 참조 섹션을 참조시오.

    참고 : 월의 일수를 계산할 때 DATDIF 함수에서는 항상 시작일을 포함하고 종료일은 제외한다.

     


    이자 계산 방식(Day Count Basis, basis = 30/360)의 일수 계산 방법

    두 날짜 사이의 일수를 계산하려면 다음 공식을 사용한다.

     

     

    Arguments

    Y2 이후 날짜의 연도를 지정한다.
    Y1 이전 날짜의 연도를 지정한다.
    M2 이후 날짜의 월을 지정한다.
    M1 이전 날짜의 월 지정한다.
    D2 이후 날짜의 일(day)을 지정한다.
    D1 이전 날짜의 일 (day)을 지정한다.

    모든 월의 마지막 날은 30일로 처리하기 때문에 마지막 날이 30일이 아닌 다른 날짜인 월에 대해서는 조정 작업을 수행해야 한다. 이 조정 작업은 두 날짜 사이의 일수를 계산하기 전에 수행해야 한다.

    다음 규칙이 적용된다.

    • 증권이 월말 규칙(End-of-Month rule)을 따르고 D1과 D2가 2월 마지막 날(윤년이 아닌 경우 28일, 윤년인 경우 29일)인 경우 D2를 30일로 변경한다.
    • 증권이 월말 규칙을 따르고 D1이 2월 마지막 날인 경우 D1을 30으로 변경한다.
    • D2 값이 31이고 D1 값이 30 또는 31인 경우 D2를 30으로 변경한다.
    • D1의 값이 31인 경우 D1을 30으로 변경한다.

     


    관련 함수

    함수명 함수 내용
    DIF 현재 위치에 존재하는 관측치의 값과 n번째 lag에 위치한 관측치 값과의 차이를 계산한다.
    DATDIF 두 날짜 사이의 차이를 계산한다.
    LAG 큐에 저장한 값을 반환한다. 즉, n-th 이전 시차 값을 계산한다.
    YRDIF 사용자가 지정한 2개 날짜(date) 사이의 년도 차이를 계산한다.

     


    예 제

     

    예 제 1 :

    다음 예제에서 DATDIF 함수는 두 날짜 사이의 실제 일 수 차이와 한 달을 30일, 1년을 360일을 기준으로 처리한 일 수를 반환한다.

    SAS Statements
    data DATDIF;
         sdate = '16JAN05'd;
         edate = '16feb05'd;
         actual = datdif(sdate, edate, 'act/act');
         days360 = datdif(sdate, edate, '30/360');
         put actual= days360=;
    run;

     

    Results
    actual=31 days360=30

     


    SAS 함수(SAS Function) 리스트 링크

     

    엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크

     

    SAS 데이터 스텝 구문 리스트(SAS Data Step Statement)
    반응형

    'SAS > SAS 함수' 카테고리의 다른 글

    【SAS 함수】 120. DATEJUL 함수  (0) 2018.12.06
    【SAS 함수】 119. DATE 함수  (0) 2018.12.06
    [SAS 함수] 117. DAIRY 함수  (0) 2018.12.06
    【SAS 함수】 116. DACCTAB 함수  (0) 2018.12.06
    【SAS 함수】 115. DACCSYD 함수  (0) 2018.12.06

    댓글