星期二, 10月 31, 2023

2000-02-29 如何計算某日當月的最後一天是 30,31,28或29 ?


如何計算某日當月的最後一天是 30,31,28或29 ?

      *****************************************************************
      *                                                                
      *     LastDay   Determines last day of month for a date          
      *                                                                
      *****************************************************************
                                                                       
     D DateIn          S               D                               
     D                 DS                                              
     D DateEnd                         D   DATFMT(*ISO)                
     D  DateDay                       2    OVERLAY(DateEnd:9)          
                                                                       
     C     DateIn        ADDDUR    1:*M          DateEnd               
     C                   EVAL      DateDay = '01'                      
     C                   SUBDUR    1:*D          DateEnd

      * 假設 DateIn = '2000-02-20' , DateIn 加一個月 DateEnd = '2000-03-20'
      * 將 DateEnd 最後二位設為 '01', DateEnd = '2000-03-01'
      * DateEnd 減一日 , DateEnd = '2000-02-29' 
      * 即為 '2000-02-20' 當月的最後一天  

      * 網路上另有一計算方式大同小異, 供您參考
      * http://www.rpgiv.com/rpgnews/March2000/endofmonth.html      

沒有留言: