SAS:找到月份和年份的最后一天的日期
问题描述:
问题:有没有办法找到某个月份和年份中的最后一天的日期,而无需使用月份/年份的第一个日期?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');
答
你可以使用的日期格式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;
答
如果您不想使用“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;