midrange.com code scratchpad
Name:
Dates: Prototypes, Data-Structures, and Example Calls
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
08/20/2014 06:48:03 pm
IP:
Logged
Description:
The user was to lazy to give a description
Code:
  1.       //***********************************************************************
  2.       //    ___       _                ___ _               _
  3.       //   |   \ __ _| |_ __ _   ___  / __| |_ _ _ _  _ __| |_ _  _ _ _ ___ ___
  4.       //   | |) / _` |  _/ _` | |___| \__ \  _| '_| || / _|  _| || | '_/ -_|_-<
  5.       //   |___/\__,_|\__\__,_|       |___/\__|_|  \_,_\__|\__|\_,_|_| \___/__/
  6.       //
  7.       //***********************************************************************
  8.      DDtGen            DS                  Qualified
  9.      D                                     Based(Template)
  10.      D Date                            D
  11.      D Year                           4S 0
  12.      D Month                          2S 0
  13.      D Day                            2S 0
  14.      d Period                              LikeDS(DtPer)
  15.      D DayOfWk                             LikeDS(DtDay)
  16.      D DayFoY                              LikeDS(DtDay)
  17.      D DayLoY                              LikeDS(DtDay)
  18.      D PrevDt                          D
  19.      D NextDt                          D
  20.      D FirstOfMth                      D
  21.      D LastOfMth                       D
  22.      D Firsts                              LikeDS(DtFirstLast)
  23.      D Lasts                               LikeDS(DtFirstLast)
  24.       //***********************************************************************
  25.      DDtDay            DS                  Qualified
  26.      D                                     Based(Template)
  27.      D Num                            1S 0
  28.      D Name                           9A   Varying
  29.       //***********************************************************************
  30.      DDtPer            DS                  Qualified
  31.      D                                     Based(Template)
  32.      D BegPer                          D
  33.      D EndPer                          D
  34.      D PerNum                         2S 0
  35.      D PerYr                          4S 0
  36.       //***********************************************************************
  37.      DDtFirstLast      DS                  Qualified
  38.      D                                     Based(Template)
  39.      D Sun                             D
  40.      D Mon                             D
  41.      D Tue                             D
  42.      D Wed                             D
  43.      D Thu                             D
  44.      D Fri                             D
  45.      D Sat                             D
  46.  
  47.       //***********************************************************************
  48.       //    ___         _       _
  49.       //   | _ \_ _ ___| |_ ___| |_ _  _ _ __  ___ ___
  50.       //   |  _/ '_/ _ \  _/ _ \  _| || | '_ \/ -_|_-<
  51.       //   |_| |_| \___/\__\___/\__|\_, | .__/\___/__/
  52.       //                            |__/|_|
  53.       //***********************************************************************
  54.  
  55.        //=======================================================================
  56.        //    ___  _    ___     _    ___
  57.        //   |   \| |_ / __|___| |_ / __|___ _ _
  58.        //   | |) |  _| (_ / -_)  _| (_ / -_) ' \
  59.        //   |___/ \__|\___\___|\__|\___\___|_||_|
  60.        //
  61.        //Gets a Lot of Useful General Items Regarding Input Date.
  62.        //
  63.        // *** RETURN **********************************************************
  64.        // Data Sturcutre LIKEDS(DtGen)
  65.        //  Must be defined in calling program (i.e.):
  66.        //  D DSDtGen         DS                  LikeDS(DtGen)
  67.        // *********************************************************************
  68.        //
  69.        // Example:
  70.        //  DSDtGen = DtGetGen(%date());
  71.        //=======================================================================
  72.      DDtGetGen         PR                  LikeDS(DtGen)
  73.      D InputDt                         D   Const
  74.  
  75.  
  76.  
  77.       //***********************************************************************
  78.  
  79.  
  80.  
  81.        //=======================================================================
  82.        //    ___  _    ___     _   ___
  83.        //   |   \| |_ / __|___| |_|   \ __ _ _  _
  84.        //   | |) |  _| (_ / -_)  _| |) / _` | || |
  85.        //   |___/ \__|\___\___|\__|___/\__,_|\_, |
  86.        //                                    |__/
  87.        //
  88.        //Gets Day of Week (Num: 1-7; Name: SUNDAY-SATURDAY) for Input Date.
  89.        //
  90.        // *** RETURN **********************************************************
  91.        // Data Sturcutre LIKEDS(DtDay)
  92.        //  Must be defined in calling program (i.e.):
  93.        //  D DSDay           DS                  LikeDS(DtDay)
  94.        // *********************************************************************
  95.        //
  96.        // Example:
  97.        //  DSDay = DtGetDay(%date());
  98.        //=======================================================================
  99.      DDtGetDay         PR                  LikeDS(DtDay)
  100.      D InputDt                         D   Const
  101.  
  102.  
  103.        //=======================================================================
  104.        //    ___  _    ___     _   ___            ___  _
  105.        //   |   \| |_ / __|___| |_|   \ __ _ _  _|   \| |_
  106.        //   | |) |  _| (_ / -_)  _| |) / _` | || | |) |  _|
  107.        //   |___/ \__|\___\___|\__|___/\__,_|\_, |___/ \__|
  108.        //                                    |__/
  109.        //Gets the Date for a Specified Previous or Future Occurrence of a
  110.        // Specified Day(SUNDAY-SATURDAY) for Input Date.
  111.        //
  112.        // *** RETURN **********************************************************
  113.        // Date Field
  114.        // *********************************************************************
  115.        //
  116.        // Must pass a date, a previous day number (1=SUNDAY, 2= MONDAY, etc.),
  117.        //  an operator (only '+'=Future Period, '-'=Previous Period) along with
  118.        //  the occurrence you want returned
  119.        //
  120.        // Examples:
  121.        //  FutWed = DtGetDayDt(%date():4:'+':1); //Next Wednesday
  122.        //  FutThu = DtGetDayDt(%date():5:'+':1); //Next Thursday
  123.        //  FutFri = DtGetDayDt(%date():6:'+':4); //4 Fridays from now
  124.        //  PrvWed = DtGetDayDt(%date():4:'-':1); //Last Wednesday
  125.        //  PrvThu = DtGetDayDt(%date():5:'-':1); //Last Thursday
  126.        //  PrvFri = DtGetDayDt(%date():6:'-':4); //4 Fridays ago
  127.        //=======================================================================
  128.      DDtGetDayDt       PR              D
  129.      D InputDt                         D   Const
  130.      D InputDayNum                    1S 0 Const
  131.      D InputOp                        1A   Const
  132.      D InputOccur                     2S 0 Const
  133.  
  134.  
  135.        //=======================================================================
  136.        //    ___  _    ___     _   ___            ___  __   __
  137.        //   |   \| |_ / __|___| |_|   \ __ _ _  _| __|_\ \ / /
  138.        //   | |) |  _| (_ / -_)  _| |) / _` | || | _/ _ \ V /
  139.        //   |___/ \__|\___\___|\__|___/\__,_|\_, |_|\___/|_|
  140.        //                                    |__/
  141.        //Gets Day (Num: 1-7; Name: SUNDAY-SATURDAY) for the First Day of the
  142.        // Year for Input Year.
  143.        //
  144.        // *** RETURN **********************************************************
  145.        // Data Sturcutre LIKEDS(DtDay)
  146.        //  Must be defined in calling program (i.e.):
  147.        //  D DSDayFoY        DS                  LikeDS(DtDay)
  148.        // *********************************************************************
  149.        //
  150.        // Examples:
  151.        //  DSDayFoY = DtGetDayFoY(2014);
  152.        //  DSDayFoY = DtGetDayFoY(%subdt(%date():*YEARS));
  153.        //=======================================================================
  154.      DDtGetDayFoY      PR                  LikeDS(DtDay)
  155.      D InputYr                        4S 0 Const
  156.  
  157.  
  158.        //=======================================================================
  159.        //    ___  _    ___     _   ___            _      __   __
  160.        //   |   \| |_ / __|___| |_|   \ __ _ _  _| |   __\ \ / /
  161.        //   | |) |  _| (_ / -_)  _| |) / _` | || | |__/ _ \ V /
  162.        //   |___/ \__|\___\___|\__|___/\__,_|\_, |____\___/|_|
  163.        //                                    |__/
  164.        //Gets Day (Num: 1-7; Name: SUNDAY-SATURDAY) for the Last Day of the Year
  165.        // for Input Year.
  166.        //
  167.        // *** RETURN **********************************************************
  168.        // Data Sturcutre LIKEDS(DtDay)
  169.        //  Must be defined in calling program (i.e.):
  170.        //  D DSDayLoY        DS                  LikeDS(DtDay)
  171.        // *********************************************************************
  172.        //
  173.        // Examples:
  174.        //  DSDayLoY = DtGetDayLoY(2014);
  175.        //  DSDayLoY = DtGetDayLoY(%subdt(%date():*YEARS));
  176.        //=======================================================================
  177.      DDtGetDayLoY      PR                  LikeDS(DtDay)
  178.      D InputYr                        4S 0 Const
  179.  
  180.  
  181.        //=======================================================================
  182.        //    ___  _    ___     _   ___ _        _
  183.        //   |   \| |_ / __|___| |_| __(_)_ _ __| |_ ___
  184.        //   | |) |  _| (_ / -_)  _| _|| | '_(_-<  _(_-<
  185.        //   |___/ \__|\___\___|\__|_| |_|_| /__/\__/__/
  186.        //
  187.        //Gets the Date of the First Sun-Sat of the Month for Input Date.
  188.        //
  189.        // *** RETURN **********************************************************
  190.        // Data Sturcutre LIKEDS(DtFirstLast)
  191.        //  Must be defined in calling program (i.e.):
  192.        //  D DSDayFirsts     DS                  LikeDS(DtFirstLast)
  193.        // *********************************************************************
  194.        //
  195.        // Example
  196.        //  DSDayFirsts = DtGetFirsts(%date());
  197.        //=======================================================================
  198.      DDtGetFirsts      PR                  LikeDS(DtFirstLast)
  199.      D InputDt                         D   Const
  200.  
  201.  
  202.        //=======================================================================
  203.        //    ___  _    ___     _   ___    __  __
  204.        //   |   \| |_ / __|___| |_| __|__|  \/  |
  205.        //   | |) |  _| (_ / -_)  _| _/ _ \ |\/| |
  206.        //   |___/ \__|\___\___|\__|_|\___/_|  |_|
  207.        //
  208.        //Gets the Date of the First Day of the Month for Input Date.
  209.        //
  210.        // *** RETURN **********************************************************
  211.        // Date Field
  212.        // *********************************************************************
  213.        //
  214.        // Example:
  215.        //  FirstOfMonth = DtGetFoM;
  216.        //=======================================================================
  217.      DDtGetFoM         PR              D
  218.      D InputDt                         D   Const
  219.  
  220.  
  221.        //=======================================================================
  222.        //    ___  _    ___     _   _            _
  223.        //   |   \| |_ / __|___| |_| |   __ _ __| |_ ___
  224.        //   | |) |  _| (_ / -_)  _| |__/ _` (_-<  _(_-<
  225.        //   |___/ \__|\___\___|\__|____\__,_/__/\__/__/
  226.        //
  227.        //Gets the Date of the Last Sun-Sat of the Month for Input Date.
  228.        //
  229.        // *** RETURN **********************************************************
  230.        // Data Sturcutre LIKEDS(DtFirstLast)
  231.        //  Must be defined in calling program (i.e.):
  232.        //  D DSDayLasts      DS                  LikeDS(DtFirstLast)
  233.        // *********************************************************************
  234.        //
  235.        // Example
  236.        //  DSDayLasts = DtGetLasts(%date());
  237.        //=======================================================================
  238.      DDtGetLasts       PR                  LikeDS(DtFirstLast)
  239.      D InputDt                         D   Const
  240.  
  241.  
  242.        //=======================================================================
  243.        //    ___  _    ___     _   _        __  __
  244.        //   |   \| |_ / __|___| |_| |   ___|  \/  |
  245.        //   | |) |  _| (_ / -_)  _| |__/ _ \ |\/| |
  246.        //   |___/ \__|\___\___|\__|____\___/_|  |_|
  247.        //
  248.        //Gets the Date of the Last Day of the Month for Input Date.
  249.        //
  250.        // *** RETURN **********************************************************
  251.        // Date Field
  252.        // *********************************************************************
  253.        //
  254.        // Example:
  255.        //  LastOfMonth = DtGetLoM;
  256.        //=======================================================================
  257.      DDtGetLoM         PR              D
  258.      D InputDt                         D   Const
  259.  
  260.  
  261.        //=======================================================================
  262.        //    ___  _    ___     _   ___
  263.        //   |   \| |_ / __|___| |_| _ \___ _ _
  264.        //   | |) |  _| (_ / -_)  _|  _/ -_) '_|
  265.        //   |___/ \__|\___\___|\__|_| \___|_|
  266.        //
  267.        //Gets the beginning and Ending Dates of Period for Input Year and Period
  268.        // Number
  269.        //
  270.        // *** RETURN **********************************************************
  271.        // Data Sturcutre LIKEDS(DtPer)
  272.        //  Must be defined in calling program:
  273.        //  D DSPeriod        DS                  LikeDS(DtPer)
  274.        // *********************************************************************
  275.        //
  276.        // Must pass a year and a period number
  277.        //
  278.        // Examples:
  279.        //  DSPeriod = DtGetPer(2014:7);
  280.        //=======================================================================
  281.      DDtGetPer         PR                  LikeDS(DtPer)
  282.      D InputYr                        4S 0 Const
  283.      D InputNum                       2S 0 Const
  284.  
  285.  
  286.        //=======================================================================
  287.        //    ___  _    ___     _   ___         ___  _
  288.        //   |   \| |_ / __|___| |_| _ \___ _ _|   \| |_
  289.        //   | |) |  _| (_ / -_)  _|  _/ -_) '_| |) |  _|
  290.        //   |___/ \__|\___\___|\__|_| \___|_| |___/ \__|
  291.        //
  292.        //Gets the Beginning and Ending Dates of Period, As Well as the Period
  293.        // Number.
  294.        //
  295.        // *** RETURN **********************************************************
  296.        // Data Sturcutre LIKEDS(DtPer)
  297.        //  Must be defined in calling program:
  298.        //  D DSPeriod        DS                  LikeDS(DtPer)
  299.        // *********************************************************************
  300.        //
  301.        // Must pass a date, and can optionally pass an operator
  302.        //  (only '+'=Future Period, '-'=Previous Period) along with the
  303.        //   occurrence you want returned.
  304.        //
  305.        // Examples:
  306.        //  DSPeriod = DtGetPerDt(%date()); //Current period
  307.        //  DSPeriodFut = DtGetPerDt(%date():'+':2); //2 periods after cur date
  308.        //  DSPeriodPrv = DtGetPerDt(%date():'-':2); //2 periods before cur date
  309.        //=======================================================================
  310.      DDtGetPerDt       PR                  LikeDS(DtPer)
  311.      D InputDt                         D   Const
  312.      D InputOp                        1A   Const Options(*NoPass)
  313.      D InputOccur                     2S 0 Const Options(*NoPass) 
© 2004-2019 by midrange.com generated in 0.007s valid xhtml & css