我期待自动完成公司的日常报告,但我遇到了一些麻烦。该报告仅在每个月的第二个工作日更新。我在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;
任何帮助,将不胜感激。
如果这个月的第一天是星期六会怎么样?或者如果是假期? (“第二个工作日”真的是“第一个星期二”,打算成为第二个或第一个取决于是否是假期,除了像12/25或7/4这样的假期不移动...)? – Joe
嗨乔,谢谢你的回复。如果银行假期等出现,公司愿意手动进行,但在该领域我们非常少见,那些假期会影响我们。 – Rossco2210
重读这一点,我无法弄清楚问题是什么,确切地说。你已经有了一些可行的代码(这不完全是我使用的,但似乎足够好)。问题是什么?你在问如何从数据步骤制作宏变量? – Joe