如何在SAS中提供两个日期之间的天数

时间:2017-05-27 03:50:44

标签: date sas countdown

我每年有几段时间,其中零日是特定的一天。我需要创建一个列表,列出期间开始和结束之间的所有日期及其相关日期。

这是一个例子: 开课日期(08APR2016) 零日(2016年5月1日) 结束日期(04Aug2016)

列表如下所示:

Day  Date
-37  08APR2016
-36  09APR2016
 .
 .
 0   01MAY2016
 1   02May2016
 .
 .
 94  04AUG2016

我不确定如何编写执行此操作所需的SAS代码,我们将不胜感激。

我目前正在通过创建一个带有 N 的id变量来实现它,该变量从开始日期到结束日期进行计数。对于每个列表,我然后添加正确的数字,使我想要的日期为零。所以在上面的例子中,例如我会为第一个做 N -38,然后从那里算起来。

然而,在为多个列表执行此操作时会变得混乱,我希望有一种快速的方法可以使某一天为零,然后倒数到第一天,然后再转发到最后一天。

1 个答案:

答案 0 :(得分:0)

你所要求的是非常直截了当的。你应该尝试一些东西,看看哪些有效,哪些无效。

data want;
retain day date;
keep day date;
format date date9.;

startDate = '08APR2016'd;
endDate   = '04AUG2016'd;
zeroDate  = '01MAY2016'd;

do i = startDate to endDate;
   day = i - zeroDate;
   date = i;
   output;
end;
run;