考虑周六的某个工作日,如何计算两个日期之间的工作日数?

时间:2019-04-15 20:56:40

标签: date sas date-difference

我有一个数据集,其中包含事件的第一天和最后一天。我需要计算两个日期之间的工作日数。但是,我需要将星期六视为工作日。我该怎么办?

这是与我的数据集完全一样的示例,但是更小。在运行所有程序之前,我一直使用它来测试代码:

data testing_weekdays;
    input id $ date_1 date9. id2 $ dat2_2 date9.;
    format date_1 date9. dat2_2 date9.;
    datalines;
AA 01jan2019 AA 25jan2019
BB 02feb2019 BB 12feb2019
CC 10aug1990 CC 05jan1995
DD 11dec1999 DD 21dec1999
;
run;

当我将intck函数与参数'weekday'一起使用时,我将周六和周日都视为周末而得到了不同。但我只想考虑星期日。

我在SAS社区https://communities.sas.com/t5/SAS-Programming/Sunday-to-Saturday-work-day/td-p/338412上看到了此解决方案,但是我无法使其正常工作。

2 个答案:

答案 0 :(得分:2)

您可以使用sas函数intck查找所需的间隔。在您的示例中,以下为语句:

data want;
 set testing_weekdays;
 wkdays=intck('WEEKDAY1W',date_1,dat2_2);
run;

您可以在工作日间隔中使用不同的格式。这些天被编号为Sunday(1).. Saturday(7)。因此,如果您希望将星期日保留为周末,则将WEEKDAY1W用作间隔。如果说您希望将Monday(2),Wed(4)作为周末,则使用-WEEKDAY24W

答案 1 :(得分:0)

 data new;
 set old
 interval=intck('weekday1w',begin,end);
 run;