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 |
必ず、
のいずれかの組み合わせで指定する必要があります。
プログラム例: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
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!
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。