*
      * Description :·%Diff() Example
      *
      * Syntex      :
      *
      * %Diff(Date/Time expression : Date/Time expression : unit)
      *
      * Function    :·Return Difference between date/time given in specified unit
      *==========================================================
      *
     D Diff            S              5I 0
     D Date1           S               D
     C
      /Free
        //-------------------------------------------------------
        // For Date
        //=======================================================
          Diff = %Diff(D'2010-02-01' : D'2010-01-01' : *Days) ;
          Dsply %Char(Diff) ;                                            //  31
          Diff = %Diff(D'2010-01-01' : D'2010-02-01' : *Days) ;
          Dsply %Char(Diff) ;                                            // -31
          Diff = %Diff(D'2010-01-01' : D'2010-02-01' : *Months) ;
          Dsply %Char(Diff) ;                                            //  -1
          Diff = %Diff(D'2012-01-01' : D'2010-01-01' : *Years) ;
          Dsply %Char(Diff) ;                                            //   2
          // Date - TimeStamp
          Diff = %Diff(D'2010-01-01' : Z'2010-01-01-09.00.00' : *Years) ;
          Dsply %Char(Diff) ;                                            //   0
        //-------------------------------------------------------
        // For Time
        //=======================================================
          Diff = %Diff(T'10.00.00' : T'09.00.00' : *Hours) ;
          Dsply %Char(Diff) ;                                            //  1
          Diff = %Diff(T'10.00.00' : T'09.00.00' : *Minutes) ;
          Dsply %Char(Diff) ;                                            //  60
          Diff = %Diff(T'10.00.00' : T'09.00.00' : *Seconds) ;
          Dsply %Char(Diff) ;                                            //  3600
          // Time - TimeStamp
          Diff = %Diff(T'10.00.00' : Z'2010-01-01-08.00.00' : *Hours) ;
          Dsply %Char(Diff) ;                                            //   2
        //-------------------------------------------------------
        // For TimeStamp
        //-------------------------------------------------------
          Diff = %Diff(Z'2010-03-03-10.00.00.000200' :
                       Z'2010-03-03-10.00.00.000100' :
                       *MSeconds) ;
          Dsply %Char(Diff) ;                                            //  100
        //-------------------------------------------------------
        // %Diff as Duration
        //-------------------------------------------------------
          Date1 = %Date() +
                 %Diff(D'2012-11-11' : D'2011-10-10' : *Days) ;
          Dsply Date1 ;                  // Some Date
      /End-Free
     C                   SetOn                                        LR
No comments:
Post a Comment