[程式] 如何計算日期重疊天數?

看板Statistics作者 (*)時間11年前 (2013/02/26 21:07), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
[軟體程式類別]: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, , 4F
可以參考這一篇 抓區間
02/27 00:35, 4F

02/27 08:40, , 5F
太感謝了 來試試 有成功會上來報告
02/27 08:40, 5F
文章代碼(AID): #1HBBEGWN (Statistics)