BookmarkSubscribeRSS Feed

DATDIF関数・YRDIF関数について

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 3,773

質問

DATDIF関数およびYRDIF関数の使い方を教えてください。

回答

DATDIF関数は開始日付から終了日付までの日数を計算するための関数です。

日数= DATDIF(開始SAS日付値,終了SAS日付値,表示形式) ;

 

YRDIF関数は開始日付から終了日付までの年数を計算するための関数です。

年数= YRDIF(開始SAS日付値,終了SAS日付値,表示形式) ;

 

両関数とも3番目の引数「表示形式」には、年・月の扱いを変更するための設定値を指定します。

ACT/ACT 年・月とも実際の日数で計算します
30/360 1月を30日、1年を360日で計算します
ACT/360 1月を実際の日数、1年を360日で計算します
ACT/365

1月を実際の日数、1年を365日で計算します

AGE

人の年齢を計算します(YRDIF関数)

 

必ず、

  • 月は「30」、「ACT」
  • 年は「360」、「365」、「ACT」

のいずれかの組み合わせで指定する必要があります。

 

プログラム例:DATDIF関数の処理

DATA _null_;
  sdate   = '16oct78'd;
  edate   = '16feb96'd;
  actual  = DATDIF(sdate, edate, 'act/act');
  days360 = DATDIF(sdate, edate, '30/360');
  PUT actual= ; 
/* 実際の日数で計算*/
  PUT days360= ;    /* 1月を30日、1年を360日で計算*/
RUN ;

 

上記の処理結果

  actual=6332
  days360=6240

 

プログラム例:YRDIF関数の処理

DATA _NULL_;
  sdate = '16oct1998'd;
  edate = '16feb2003'd;
              /* 1月を30日、1年を360日で計算*/
  y30360 = YRDIF(sdate, edate, '30/360'); 
                           /* 実際の日数で計算*/
  yactact = YRDIF(sdate, edate, 'ACT/ACT');
                           /* 1年を360日で計算*/
  yact360 = YRDIF(sdate, edate, 'ACT/360');
                           /* 1年を365日で計算*/
  yact365 = YRDIF(sdate, edate, 'ACT/365');
  PUT y30360=
      yactact=
      yact360=
      yact365= ;
RUN ;

 

上記の処理結果

y30360 = 4.3333333333
yactact = 4.3369863014
yact360 = 4.4
yact365 = 4.3397260274
 
※YRDIF関数については、開始日付もしくは終了日付が閏年であり、かつ 表示形式が「ACT/ACT」の場合、期待した戻り値にならないという問題があります。詳細は下記URLの情報をご参照ください。
http://support.sas.com/techsup/notes/v8/3/036.html

 

 

Version history
Last update:
‎04-19-2018 09:34 PM
Updated by:

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Article Labels

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む

Article Tags