[程式] 如何計算日期重疊天數?
[軟體程式類別]:SAS
[程式問題]:資料處理
[軟體熟悉度]:
新手(不到1個月)
[問題敘述]:
需要計算日期重疊天數,原始資料日期已轉為yymmddn8.格式
id in_date end_date day
A 20080101 20080130 29
A 20080102 20080122 20
A 20080120 20080203 14
B 20081231 20090110 10
B 20090101 20090108 7
想整理成以下資料,in_date與end_date重疊部分依id,增加一個變數dup_day
id in_date end_date day dup_day
A 20080101 20080130 29 28 (註1)
A 20080102 20080122 20 20 (註2)
A 20080120 20080203 14 10 (註3)
B 20081231 20090110 10 7 (註4)
B 20090101 20090108 7 7 (註5)
B 20090108 20090109 1 0
B 20090110 20090130 20 0
註1. 與第2次重疊0102~0122為10天;與第3次重疊0120~0130為10天;
但0120~0122重覆計算了2天,所以dup_day=10+10-2=8
註2. 與第1次重疊0102~0122為20天;與第3次重疊0120~0122為2天;
但0120~0122重覆計算了2天,所以dup_day=20+2-2=20
註3. 與第1次重疊0120~0130為10天;與第2次重疊0120~0122為2天;
但0120~0122重複計算了2天,所以dup_day=10+2-2=10
註4. 與0101~0108重疊7天,所以dup_day=7
註5. 與1231~0110重疊7天,所以dup_day=7
不知道是否我的想法有清楚表達,
或者是思考邏輯比較複雜,一直都想不到好方法
或是有辦法抓該id的最大日期區間,再扣掉沒有重複的區間,
請教各位前輩 這有解嗎?
謝謝
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.199.54
※ 編輯: herepurple 來自: 220.135.199.54 (02/26 21:25)
推
02/26 21:49, , 1F
02/26 21:49, 1F
→
02/27 00:03, , 2F
02/27 00:03, 2F
推
02/27 00:35, , 3F
02/27 00:35, 3F
→
02/27 00:35, , 4F
02/27 00:35, 4F
→
02/27 08:40, , 5F
02/27 08:40, 5F