前のページ|次のページ

DATDIF関数

指定された日数計算規則に従って2つの日付間の差を計算した後に、その日付間の日数を返します。

カテゴリ: 日付と時間

構文

必須引数

start-date

開始日を識別するSAS日付値を指定します。

ヒント start-dateが月末の場合、SASはその日付を1か月が30日の月の最終日として処理します。

end-date

終了日を識別するSAS日付値を指定します。

ヒント end-dateが月末の場合、SASはその日付を1か月が30日の月の最終日として処理します。

basis

日数計算基準を表す文字列を指定します。basisの有効な値は次のとおりです。

'30/360'

その月または年の実際のカレンダ日数に関わらず、1か月を30日、1年を360日として指定します。

月末に利息を支払う証券では、その利息を常にその月の最終日に支払うか、またはその日付が2月30日のように無効な日付でない限り常に各月の同じ日付に支払います。詳細については、日数計算基準(30/360)の計算方法を参照してください。
別名 '360'

'ACT/ACT'

日付間の実際の日数を使用します。各月にその月の実際のカレンダ日数を使用し、各年にその年の実際のカレンダ日数を使用します。

別名 'Actual'

'ACT/360'

各月に実際のカレンダ日数を使用し、すべての年の日数に実際の日数に関わらず360日を使用します。

ヒント ACT/360は短期間の証券で使用されます。

'ACT/365'

各月に実際のカレンダ日数を使用し、すべての年の日数に実際の日数に関わらず365日を使用します。

ヒント ACT/365は短期間の証券で使用されます。

詳細

基本

DATDIF関数は証券業界にとって特定の意味を持ち、その計算方法は実際の日数の数え方とは異なります。実際の日数を含む月と年を計算に使用できます。1か月を30日または1年を360日として計算することもできます。標準の証券計算方法の詳細については、この関数の最後にあるリファレンスセクションを参照してください。
注: 月の日数を数える場合、DATDIFでは常に開始日が含まれ、終了日は除外されます。

日数計算基準(30/360)の計算方法

2つの日付間の日数を計算するには、次の式を使用します。
引数
Y2
後の日付の年を指定します。
Y1
前の日付の年を指定します。
M2
後の日付の月を指定します。
M1
前の日付の月を指定します。
D2
後の日付の日を指定します。
D1
前の日付の日を指定します。
すべての月は30日のみになるため、30日以外の日数が含まれる月は調整する必要があります。この調整は、2つの日付間の日数を計算する前に行います。
次のルールが適用されます。
  • 証券が月末ルールを使用していて、D2とD1の両方が2月(うるう年以外は28日、うるう年は29日)の最終日の場合、D2を30に変更します。
  • 証券が月末ルールを使用していて、D1が2月の最終日の場合、D1を30に変更します。
  • D2の値が31でD1の値が30または31の場合、D2を30に変更します。
  • D1の値が31の場合、D1を30に変更します。

次の例では、DATDIFは2つの日付間の実際の日数、および1か月を30日、1年を360日とした場合の日数を返します。
data _null;
   sdate='16oct78'd;
   edate='16feb96'd;
   actual=datdif(sdate, edate, 'act/act');
   days360=datdif(sdate, edate, '30/360');
   put actual= days360=;
run;
SASステートメント
結果
put actual=;
6332
put days360=;
6240

関連項目:

関数:

参考文献

Securities Industry Association. 1994. Standard Securities Calculation Methods - Fixed Income Securities Formulas for Analytic Measures. 2巻 New York, 米国: . Securities Industry Association
前のページ|次のページ|ページの先頭へ