如何在任何列表中设置今天的宏条件

How to set macro condition for day of today in any of list

我想将代码 运行 设置为每月 5、11、16、22、28 天,但它不起作用。

%if %sysfunc(day(%sysfunc(today()))) in (5,11,16,22,28) %then %do

我该如何解决?非常感谢。

IN 运算符在 SAS 9.2 宏中工作,但您需要定义系统选项。 MINOPERATOR (Macro-In-Operator) 必须打开,在您的情况下,MINDELILITER 也必须指定,因为您使用的是逗号分隔值。
可以在 Getting the IN operator to FUNCTION inside a SAS® Macro

中找到更多信息
options minoperator mindelimiter=',';
%if %sysfunc(day(%sysfunc(today())-1)) in (5,11,16,22,28) %then %do;
    %put do smth...;
%end; 

do smth...

注意上例中的 -1 复制了 3 月 22 日。