Return number of days

 2 Replies
 0 Subscribed to this topic
 43 Subscribed to this forum
Sort:
Author
Messages
Chesca
Veteran Member
Posts: 490
Veteran Member
    Hello, I was wondering if there is a function/API that calculates the difference between two dates and returns a number? I coded but I don't think it is calculating correctly. Any help would be greatly appeciated, thanks! Here is my code:

    MOVE LPC-PRM-THRU-PROC-DATE TO WSDR-FR-DATE.
    PERFORM 900-DATE-TO-JULIAN.
    MOVE WSDR-JULIAN-DAYS TO WS-SYS-JULDATE.

    *===CONVERT EMP ADJ HIRE DATE TO JULIAN DATE
    MOVE EMP-ADJ-HIRE-DATE TO WSDR-FR-DATE.
    PERFORM 900-DATE-TO-JULIAN.
    MOVE WSDR-JULIAN-DAYS TO WS-HIRE-DATE-JULIAN.

    *===CALCULATE DAYS
    *===SUBTRACT EMP HIRE DATE FROM THE PAY PERIOD END DATE

    COMPUTE LPC-DAYS = (WS-SYS-JULDATE - WS-HIRE-DATE-JULIAN).

    DAYS Field is 3 bytes long for 365 days.
    Chesca
    Veteran Member
    Posts: 490
    Veteran Member
      I found in the API doc, a function that calculate the number of calendar days difference between two specified dates. The number of days is always greater than zero.
      900-NBR-DAYS-IN-DATE-RNG
      900-NBR-DAYS-IN-DATE-RNG

      So I modified my code to call this routine:
      PERFORM 900-NBR-DAYS-IN-DATE-RNG.
      IF(WSDR-ERROR-NBR = 0)
      DISPLAY "NUMBER OF DAYS " WSDR-NBR-DAYS
      MOVE WSDR-NBR-DAYS TO LPC-DAYS
      ELSE
      DISPLAY "CAN'T CALC LPC-DAYS, INVALID INPUT DATES"
      GO TO 700-END.
      TracyO
      Veteran Member
      Posts: 97
      Veteran Member
        Here is what we use in our pflow.js. Don't know if this will help you or not.

        /************************************************************
        Function: DateDiff

        Purpose: Calculates the difference in days between two
        JavaScript dates (absolute value)
        ************************************************************/
        function DateDiff(jsDate1,jsDate2)
        {
        var time1 = jsDate1.getTime();
        var newDate1 = new Date(time1);
        var time2 = jsDate2.getTime();
        var newDate2 = new Date(time2);

        //gdw - the DateDiff function ignores time
        newDate1.setHours(0);
        newDate1.setMinutes(0);
        newDate1.setSeconds(0);
        newDate1.setMilliseconds(0);
        newDate2.setHours(0);
        newDate2.setMinutes(0);
        newDate2.setSeconds(0);
        newDate2.setMilliseconds(0);

        var x = newDate1.getTime();
        var y = newDate2.getTime();
        var temp = x - y;
        //gdw - return the absolute value
        if (temp < 0) temp = temp*(-1);
        //gdw - there are 86400000 milliseconds in a day
        days = temp/86400000;
        //days = '' + days;
        return days;
        }