SAS:查找月份和年份的最后一天的日期

时间:2016-08-18 18:23:48

标签: date calendar 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');

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;