sezenspessa

EMTIME-CONVERTER

Dec 23rd, 2019
726
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       ******************************************************************
  2.       * Author: Sezen
  3.       * Date:   12/23/2019 (Edit: 4/18/2020)
  4.       ******************************************************************
  5.       * OUTPUTS:
  6.       * STANDARD TIME: 15:55:15
  7.       * EMILY TIME:    35:51:42
  8.       ******************************************************************
  9.       * MORE ON EMILY TIME:
  10.       * http://xahlee.info/kbd/happy_hacking_emily.html
  11.       ******************************************************************
  12.        IDENTIFICATION DIVISION.
  13.        PROGRAM-ID. EMTIME-CONVERTER.
  14.        ENVIRONMENT DIVISION.
  15.        CONFIGURATION SECTION.
  16.        REPOSITORY.
  17.             FUNCTION ALL INTRINSIC.
  18.        DATA DIVISION.
  19.        FILE SECTION.
  20.        WORKING-STORAGE SECTION.
  21.        01   WS-STANDARD-TIME.
  22.             05   WS-STANDARD-HOUR   PIC 99.
  23.                  88   HOUR-CHECK    VALUE 00 THRU 23.
  24.             05   COL1               PIC X VALUE ':'.
  25.             05   WS-STANDARD-MINUTE PIC 99.
  26.                  88   MIN-CHECK     VALUE 00 THRU 59.
  27.             05   COL2               PIC X VALUE ':'.
  28.             05   WS-STANDARD-SECOND PIC 99.
  29.                  88   SEC-CHECK     VALUE 00 THRU 59.
  30.        01   WS-EM-TIME.
  31.             05   WS-EM-HOUR         PIC 9(2).
  32.             05                      PIC X VALUE ':'.
  33.             05   WS-EM-MINUTE       PIC 9(2).
  34.             05                      PIC X VALUE ':'.
  35.             05   WS-EM-SECOND       PIC 9(2).
  36.        01   EM-TIME-TOTAL           PIC 99999 VALUE 46656.
  37.        01   STANDARD-TIME-TOTAL     PIC 99999 VALUE 86400.
  38.        01   DAY-PERCENT             PIC 9V9(25).
  39.        01   EM-DAY-VAL              PIC 99999.
  40.        01   DAY-SECONDS             PIC 9(6).
  41.  
  42.  
  43.  
  44.        PROCEDURE DIVISION.
  45.             DISPLAY 'Enter HH:MM:SS: '.
  46.             ACCEPT WS-STANDARD-TIME.
  47.       *    CHECK IF VALID...
  48.             IF NOT (HOUR-CHECK AND MIN-CHECK AND SEC-CHECK AND (
  49.       -    COL1 AND COL2 = ':'))
  50.             THEN
  51.                DISPLAY 'INVALID TIME ENTERED. TRY AGAIN :)'
  52.                STOP RUN
  53.             END-IF.
  54.             COMPUTE DAY-SECONDS = ((WS-STANDARD-HOUR*60)*60)+(WS-STANDAR
  55.       -    D-MINUTE*60)+WS-STANDARD-SECOND.
  56.             COMPUTE DAY-PERCENT =  DAY-SECONDS / STANDARD-TIME-TOTAL.
  57.             COMPUTE EM-DAY-VAL = EM-TIME-TOTAL * DAY-PERCENT.
  58.             COMPUTE WS-EM-HOUR = (EM-DAY-VAL / (36*36)).
  59.             COMPUTE WS-EM-MINUTE = (EM-DAY-VAL - (WS-EM-HOUR * (36 * 36
  60.       -    ))) / 36.
  61.             MOVE MOD(EM-DAY-VAL, 36) TO WS-EM-SECOND.
  62.       *    CONVERT BASE-10 -> BASE-6...
  63.             CALL 'CONV-BASE-6' USING WS-EM-HOUR.
  64.             CALL 'CONV-BASE-6' USING WS-EM-MINUTE.
  65.             CALL 'CONV-BASE-6' USING WS-EM-SECOND.
  66.       *    OUTPUT TO CONSOLE
  67.             DISPLAY 'STANDARD TIME: ', WS-STANDARD-TIME.
  68.             DISPLAY 'EMILY TIME:    ', WS-EM-TIME.
  69.             STOP RUN.
  70.        END PROGRAM EMTIME-CONVERTER.
  71.       *
  72.        IDENTIFICATION DIVISION.
  73.        PROGRAM-ID. CONV-BASE-6.
  74.        ENVIRONMENT DIVISION.
  75.        CONFIGURATION SECTION.
  76.        REPOSITORY.
  77.             FUNCTION ALL INTRINSIC.
  78.        DATA DIVISION.
  79.        LOCAL-STORAGE SECTION.
  80.        01   LS-QUO        PIC Z(9) VALUE 1.
  81.        01   LS-REM        PIC Z(9) VALUE 1.
  82.        01   LS-STRING     REDEFINES LS-REM PIC X(9).
  83.        01   LS-RETURN     PIC X(20) VALUE SPACES.
  84.        LINKAGE SECTION.
  85.        01   L-TIME PIC 9(2).
  86.        PROCEDURE DIVISION USING L-TIME.
  87.             PERFORM UNTIL LS-QUO = SPACES
  88.             MOVE 0 TO LS-QUO
  89.             DIVIDE L-TIME BY 6 GIVING LS-QUO REMAINDER LS-REM
  90.       *    BECAUSE WE ARE USING Z, ZEROES TURN TO SPACES. REPLACE IT!
  91.             IF LS-REM = SPACES THEN
  92.                 STRING '0', LS-RETURN INTO LS-RETURN
  93.             ELSE
  94.                 STRING TRIM(LS-STRING),LS-RETURN INTO LS-RETURN
  95.             END-IF
  96.             MOVE LS-QUO TO L-TIME
  97.             END-PERFORM.
  98.             MOVE LS-RETURN(2:) TO LS-RETURN.
  99.             MOVE NUMVAL(LS-RETURN) TO L-TIME.
  100.        END PROGRAM CONV-BASE-6.
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×