2016-08-18 1793 views
0

问题:有没有办法找到某个月份和年份中的最后一天的日期,而无需使用月份/年份的第一个日期?SAS:找到月份和年份的最后一天的日期


我的解决方案

我的工作任务既需要开始和结束日期将被分配给只月份和年份。我公司开发的解决方案要求的开始日期:

data assigndate; 

    month = 12; 
    year = 2011; 

    begin_date = mdy(month, 01, year); 
    end_date = intnx('month', begin_date, 0, 'end'); 

    format begin_date mmddyy8.; 
    format end_date mmddyy8.; 

run; 

当然,我可以直接替换表达式begin_date使之成为一个内胆:

end_date = intnx('month', mdy(month, 01, year), 0, 'end');

回答

1

你可以使用的日期格式YYMMN6。这是201112,不包括日期。我认为使用1作为一天比较容易。

data want; 
    month=12; 
    year=2011; 
    end_date=intnx('month', input(catt(year, month), yymmn6.) , 0, 'end'); 
    format end_date date9.; 
run; 
0

如果您不想使用“1”,此代码有效。

data m; 
    format end_date date9.; 
    do year=1960 to 2022; 
    do month=1 to 12; 
     end_date = intnx('month', (year-1960)*365.25+(month*28), 0, 'end'); 
     output; 
    end; 
    end; 
run; 
相关问题