2017-05-27 70 views
-1

我每年有幾個時間段,其中第零天是特定日期。我需要創建一個列表,列出在期間開始和結束之間前後的所有日期及其相關的日期編號。如何提供SAS中兩個日期之間的天數

下面是一個例子: 開始日期(08APR2016) 零日(01May2016) 結束日期(04Aug2016)

名單應該是這樣的:

Day Date 
-37 08APR2016 
-36 09APR2016 
. 
. 
0 01MAY2016 
1 02May2016 
. 
. 
94 04AUG2016 

我不知道如何編寫必要的SAS代碼來做到這一點和任何援助將不勝感激。

我目前正在通過創建一個id變量N來計算從開始日期到結束日期。然後爲每個清單添加正確的數字以使我想要的日期爲零。所以在上面的例子中,我會爲第一個做N -38,然後從那裏算起。

但是,當它做多個列表時,它會變得混亂,我希望有一個快速的方法來使某一天爲零,然後倒數第一天,並轉發到最後一天。

+0

要符合SO規則,您需要發佈您嘗試過的內容。 SAS日期是整數(谷歌它),所以你可以增加/計數他們爲常規數字和邏輯將是正確的。如果您有開始和結束,請忽略從開始到結束的零日和循環,並且僅使用零日來計算差異。由於日期是計算差異的整數,因此可以直接減去日期。 – Reeza

回答

0

你問的是非常簡單的。你應該嘗試一些東西,看看有什麼可行的,什麼不可行。

data want; 
retain day date; 
keep day date; 
format date date9.; 

startDate = '08APR2016'd; 
endDate = '04AUG2016'd; 
zeroDate = '01MAY2016'd; 

do i = startDate to endDate; 
    day = i - zeroDate; 
    date = i; 
    output; 
end; 
run; 
相關問題