我希望为我的公司自动化每日报告,但我遇到了一些麻烦。报告仅在每个月的第2个工作日更新。我在SAS网站上找到了一些代码,它可以解决任何一个月的第二个工作日。
data scdwrk;
/* advance date to the first day of the month using the INTNX function */
second=intnx('month',today(),0);
/* determine the day of the week using the WEEKDAY function */
day=weekday(second);
/* if day=Monday then advance by 1 */
if day=2 then second+1;
/* if day=Sunday then advance by 2 */
else if day=1 then second+2;
format second date9.;
run ;
我还设置了一个标志,将今天的日期与此代码生成的日期进行比较。 我现在需要找到一种方法,如果代码在该月的第一个工作日运行,那么它运行一组特定的宏日期变量
%let start_date="&prevmnth;
%let end_date= &endprevmnth;
%let month= &prevyearmnth;
然后当它在该月的第二个工作日运行时,它使用另一组宏日期变量(日历月)
%let start_date="&currmnth;
%let end_date= &endcurrmnth;
%let month= &curryearmnth;
对此的任何帮助将不胜感激。
答案 0 :(得分:1)
我最近有一些代码可以解决这个问题。以下是我如何处理它。
首先,创建一个假期表。这可以每年维持。
其次,创建一个表,其中包含该月的前5天,而不是周末。
第三,删除假期。
最后,获取数据集中的第二个值。
{{1}}