【问题标题】:How can I count the number of weekdays between two dates, considering Saturday a weekday?考虑到工作日的星期六,我如何计算两个日期之间的工作日数?
【发布时间】:2019-04-15 20:56:40
【问题描述】:

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

这个例子和我的数据集一模一样,但更小。在运行一切之前,我一直在使用它来测试代码:

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;

当我使用带有参数“weekday”的 intck 函数时,将星期六和星期日都视为周末,我得到了不同之处。但我想只考虑星期天。

我在 SAS 社区看到了这个解决方案:https://communities.sas.com/t5/SAS-Programming/Sunday-to-Saturday-work-day/td-p/338412,但我无法让它工作。

【问题讨论】:

  • 你是在问如何计算两个日期之间有多少个星期日?

标签: date sas date-difference


【解决方案1】:

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

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

您可以为工作日间隔使用不同的格式。日子编号为星期日 (1) .. 星期六 (7)。因此,如果您想将星期日保留为周末,则使用 WEEKDAY1W 作为间隔。假设您希望将星期一(2)、星期三(4)作为周末,然后使用 - WEEKDAY24W

【讨论】:

    【解决方案2】:
     data new;
     set old
     interval=intck('weekday1w',begin,end);
     run;
    

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多