image

#--以今日日期推算前6個月日期的程式邏輯Start--#
#宣告變數
DEFINE  g_bdate  Date
DEFINE  l_date     Date
DEFINE  l_date1   LIKE type_file.chr8
DEFINE  l_date2   LIKE type_file.chr8
DEFINE  l_date3   LIKE type_file.chr8

#以今日日期得到此年月的第一日的日期型態格式資料 ex: 2021/05/01
LET l_date = MDY(MONTH(g_today),1,YEAR(g_today))
#將日期格式資料轉變格式為yyyymmdd  ex: 20210501 
LET l_date1 = l_date USING 'yyyymmdd'
#推算月份扣除6個月的月數 ※若當月為05,扣除6會呈現01,沒有負數喔!                        
LET l_date2 = l_date1[5,6]-6 USING '&&'                       
LET l_date3 = '12' 

#表示扣除後的月份為前一年  ex: 2021年05月回推6個月是2020年11月                                                     
IF l_date1[5,6] <= '06' THEN
    #從12月反扣取得是前一年的幾月 ex:05月扣除6是01,再用12-01得到去年11月                                              
    LET l_date2 = l_date3-l_date2 USING '&&'               
    #推出前6月的年月日:年度扣一、推算出的前一年月份
    LET l_date2 = l_date1[1,4]-1 USING '&&&&',l_date2 USING '&&',l_date1[7,8]     
ELSE
    #同年度、推算出的月份
    LET l_date2 = l_date1[1,4],l_date2,l_date1[7,8]         
END IF

#將推算完的前6個月日期以日期型態格式資料給變數值,以利show回畫面上
LET g_bdate = MDY(MONTH(l_date2),1,YEAR(l_date2)) 
#--以今日日期推算前6個月日期的程式邏輯END--#


 


以上分享,若有更好的寫法也歡迎與我分享唷
 

arrow
arrow
    創作者介紹
    創作者 Panny 的頭像
    Panny

    PannyCoolWorld-潘妮酷世界

    Panny 發表在 痞客邦 留言(0) 人氣()