2016-08-18 334 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; 
相關問題