我想爲任意SAS日期添加1天。我有以下的代碼工作,但我不知道羯羊有內置的支持日期計算是這樣的:SAS中的日期計算
proc fcmp outlib=whatever;
function lastDayInYear(d);
if datdif(d,mdy(12,31,year(d)),'ACT/365')=0 then return(1); else return(0);
endsub;
function advanceDate(d);
if d=. then return(.);
if lastDayInYear(d) then
return(mdy(1,1,year(d)+1));
else
return(datejul(juldate7(d)+1));
endsub;
quit;
雖然在SAS日期中添加和減去數字並且應該繼續在將來繼續工作,但它利用了SAS選擇了一個整數來表示它的內部事實。應該總是使用INTNX進行日期操作。在SAS決定改變它的可能性很小的情況下,如果你使用函數而不是數學運算,你的代碼將繼續工作。 –
的確如此。 SAS也可能決定在300年內將其所有命令切換到Fino-Ugric,但我並不太擔心這一點。 – itzy