Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member188264
Participant

Hi All,

Below function will give the last business date - Ranging from Monday to Friday.

1. On Tuesday- Last business date will be Monday's date

2. On Monday - Last Business date will be - Friday's date

3.On Saturday and Sunday - Last business date will be- Friday's date.

Function:

Name: FN_GET_BUSINESS_DATE( )

Example : FN_GET_BUSINESS_DATE( -1, Date Value)

# Comments
# Parameters
Input
#   $P_I_START_DATE   date
#   $P_I_DAYS2ADD     int
#
Output
#   Return     int
#   $P_O_RETURN_DATE        date
##
# Variables
#   $L_RETURN_DATE   date
#           $L_COUNTER              Int
#           $L_CUR_DATE             date
#           $L_DAYNUM               INT
#           $L_SKIPCNTR             INT
#           $L_DIRECTION            INT
#           $L_BUSINESSDAYS         INT
#
# Example : FN_GET_BUSINESS_DATE( -1, Date Value)
#
# -----------------------------------

Code:

           $L_COUNTER = 0 ;
           $L_CUR_DATE = $P_I_START_DATE;
           $L_SKIPCNTR = 0;
           $L_DIRECTION = 1;
           $L_BUSINESSDAYS = $P_I_DAYS2ADD;

If ($P_I_DAYS2ADD  < 0)
begin
    $L_DIRECTION = - 1;
    $L_BUSINESSDAYS = (-1) * $L_BUSINESSDAYS;
end

while ( $L_COUNTER < $L_BUSINESSDAYS )
begin
  $L_CUR_DATE= $L_CUR_DATE + $L_DIRECTION;
  $L_DAYNUM = day_in_week($L_CUR_DATE);
         
      if($L_DAYNUM >=  1 AND $L_DAYNUM <= 5)
           begin
                   $L_COUNTER = $L_COUNTER +1;
                 end
            else
        begin
                   $L_SKIPCNTR = $L_SKIPCNTR +1;
                 end
end
$L_RETURN_DATE = $P_I_START_DATE+ ($L_DIRECTION * ($L_COUNTER + $L_SKIPCNTR));

Return $L_RETURN_DATE;

--------------------------------------------------------

Thanks & Regards,

Sagar Girme

4 Comments
Labels in this area