期間を算出する際、ある特定の日から7日間を1週間として計算する方法はありますか?

[OS] ALL
[リリース] 9.2以降
[キーワード] intck

[質問]

ある特定の期間に対し、7日間を一週として計算したいと思っています。 INTCK関数では、週が変わるたびにカウントが増えてしまうため、 実際には週の数が余分に増えてしまいます。なにか良い方法はありませんか?

[回答]

SAS 9.2より、INTCK関数の拡張点として、第4引数に’C’を指定することによって 7日間が経過するたびにカウントすることができるようになりました。 下記に例を示しますので、ご参照ください。

例:


   DATA work.test;
      INFILE DATALINES;
      date1='01APR2010'd; /* 基準となる年月日 */
      INPUT date2 : DATE9.; /* 比較する年月日 */
      /* 7 日間が経過するたびにカウントを増やす*/
      count1=INTCK('WEEK',date1,date2,'C');
      /* 週が変わるたびにカウントを増やす */
      count2=INTCK('WEEK',date1,date2);
      FORMAT date1 date2 YYMMDDS10.;
   DATALINES;
   03APR2010
   04APR2010
   07APR2010
   08APR2010
   ;
   RUN;

なお、第4引数の指定がない場合は、週が変わるたびにカウントが増えます。