The REXXDATE MEMO is easy (see below).

Tools to manage SPOOL files is more difficult.  Can you define the problem a little better?
- How many files will the application manage, and how often will it run?
- What the date of the oldest SPOOL file?
- How long should the SPOOL files be retained?
- Once exceeding the retention period, what should be done with the old file (purge, archive/purge, etc.)

Have you looked at the SFPURGER EXEC?  It used to be part of the "CMS Utilities Features" (also known as CUF).  I'm not sure when it was incorporated into CMS/

Mike Walter
Hewitt Associates
The opinions expressed herein are mine alone, not my employer's.


---<snip>---
                     The REXXDATE utility



  One of  the most common  problems encountered in  writing REXX
programs  which perform  system functions  is  the conversion  of
dates to numbers  suitable for doing calculations.   For example,
it's often  important to  know how many  days there  were between
December 12, 1986 and January 9,  1987.  Or the Julian date value
of February 11,  1986.  Or you might want to know what day of the
week March 23, 1986 was?

  While one could write REXX code  to do these calculations,  it
is slow and a pain in the butt. Plus the resulting code is rarely
pretty to look at. It was this need that resulting in the writing
of REXXDATE.   REXXDATE  is a module,  which  when called,  loads
itself as  a nucleus  extension,  and  then defines  entry points
RXDATE2D, RXD2DATE,  RXTIME2D,  RXD2TIME and RXDATE2W.  These can
then be  called by the  REXX functions DATE2D,   d2Date,  TIME2D,
D2TIME and DATE2w respectively. The functions can then be dropped
and  the memory  they  use cleared,   by  simply using  'NUCXDROP
REXXDATE'.  To install the REXXDATE functions one simply needs to
put the  REXXDATE MODULE  on an  ACCESSed minidisk.   To make  it
accessible to everyone it should probably be put on the 19E ('Y')
disk.

  REXXDATE was written  by Alex Kodat at the  Johns Hopkins Uni-
versity School of Hygiene and Public Health.

  The REXXDATE DATE2D,  d2Date and  DATE2w functions use formats
compatible with the DATE function in REXX. The REXXDATE functions
use the following formats for dates.


*   A  (rexx defAult)  dd Mmm yyyy.   This is the format returned
   when  the REXX  date function  is  called without  parameters
   (i.e.  DATE()  ).   The case of the month is ignored,  as its
   length. Leading, intervening and trailing blanks are ignored.
   Examples of valid 'A' format dates :

   '11 Jan 1985'
   '  22    February 1977  '
   ' 02 Marc 1609'
   '25 dECEM 1954'

*   C (Century) ddddd. Day number in the 20th century. The centu-
   ry is assumed  to be the 20th.  Examples of  Valid 'C' format
   dates :

   '1'
   '35600'

*   E (European) dd/mm/yy.











                                                          page 2
-----------------------------------------------------------------


*   J (Julian-OS) yyddd. OS format dates.

*   M (Month) Mmmmmmmm. The name of a month, i.e. 'August', 'Sep-
   tember', etc..  This format is only used as a result from the
   function D2DATE.

*   O (Ordered) yy/mm/dd.

*   S (Sorted) yyyymmdd. Examples of valid 'S' format dates :

   '17760704'
   '19800101'

*   U (USA) mm/dd/yy.

*   V (Vernacular) Mmmmmmmmmmm dd{,} yyyy.  Month name,  followed
   by day and year. Leading, trailing and intervening spaces are
   ignored. A comma is allowed between the day and the year num-
   bers.  Only the first three characters  of the month name are
   required. Examples of valid 'V' format dates :

   'Jan 1 1980'
   ' JULY 4,1986'
   ' september   24 , 1970 '

*   W (Weekday)  Wwwwwwww.  The name of  a day of the week,  i.e.
   'Tuesday',  'Saturday',etc..  This  format is only used  as a
   result from the function D2DATE.

  Descriptions of the REXXDATE functions are given below.


DATE2D(date{,option1{,option2{,...}})

    Returns the number of days since  the start of the Gregorian
    calendar (January 1 ,1601) that the given date falls on.  If
    the date is not a valid date  the function returns a -1 val-
    ue.  The options specify the format of the date.  The format
    can be any one of the above described date formats, except M
    or W.  If no option is specified the format is assumed to be
    'A'.   When multiple options are specified,  the options are
    tried in order,  until the  date matches an option's format.
    If it does  not match any of  the options a -1  is returned.
    This  allows one  to easily  write a  program which  accepts
    dates in any one of several formats. For example :

    DATE2D('12/22/86','A','U','V') --> 140974
    DATE2D(' January 11,1986 ','A','U','V') --> 140974
    DATE2D('11 Jan 1986','A','U',V') --> 140974













                                                          page 3
-----------------------------------------------------------------


    Be careful,  however,  certain dates can represent different
    things in the 'E', 'O' and 'U' formats.


DATE2W(date{,option1{,option2{,...}})

    Returns the day of the week that the given date falls on. If
    the date is not a valid date  the function returns a -1 val-
    ue.  The options specify the format of the date.  The format
    can be any one of the  above described date formats,  except
    'M' or 'W'.  If no option is specified the format is assumed
    to be 'A'.  When multiple options are specified, the options
    are tried in order,  until the date matches an option's for-
    mat.   If it  does not  match any  of  the options  a -1  is
    returned.  This allows  one to easily write  a program which
    accepts dates in any one of several formats. For example :

    DATE2W('12/22/86','A','U','V') --> 'Monday'
    DATE2W(' January 11,1986 ','A','U','V') --> 'Saturday'
    DATE2W('11 Jan 1986','A','U',V') --> 'Saturday'

    Be careful,  however,  certain dates can represent different
    things in the 'E', 'O' and 'U' formats.


D2DATE(number,{option})

    Returns a  date in one of  the above defined  formats corre-
    sponding to a decimal number (number)  which indicates the a
    number of  days since  the start  of the  Gregorian calendar
    (january 1 1601).   If no option is specifieded the 'A' for-
    mat is used.  For example :

    D2DATE(1) --> '1 Jan 1601'
    DATE2D(100000,'V') --> 'October 16,1874'
    DATE2D(140000,'U') --> '04/22/84'

    Note that requesting a date which assumes a century (such as
    the 'U' format)  with a number  corresponding to a date out-
    side that century will produce a REXX error.


TIME2D(time)

    Returns a number of seconds since midnight for a time in the
    format hh{:mm{:ss}}. If minutes or seconds are not specified
    they are assumed to be 00.  For example :

    TIME2D(11) --> 39600
    TIME2D('11:10') --> 40200
    DATE2D('11:10:50') --> 40250











                                                          page 4
-----------------------------------------------------------------


D2TIME(number)

    Returns a time  based on a number of  seconds since midnight
    (number).  For example :

    TIME2D(1000) --> '00:16:40'
    TIME2D(10000) --> '02:46:40'
    DATE2D(50000) --> '13:53:20'



                           Usage Notes


*   The DATE2D and  D2DATE funtions are effectively  inverses and
   can be used to convert the format of a date.  For example, to
   find the Julian equivalent of a date x,  where x is a date in
   U format one simply needs to enter D2DATE(DATE2D(x,'U'),'J').

*   To   get   todays   number  one   simply   needs   to   enter
   DATE2D(DATE());

*   If one wants  a day of the week number,   rather than getting
   day of  the week  in character  form one  can simply  use the
   result  of the  DATE2D function  and use  the remainder  when
   divided by 7. For example the day of the week number of today
   (SUnday=0, Monday=1, etc..) is DATE2D(DATE())//7.

---<snip>---


"J-Marc Gibey" <[EMAIL PROTECTED]>

Sent by: "VM/ESA and z/VM Discussions" <[email protected]>

10/27/2005 03:02 AM

Please respond to
"VM/ESA and z/VM Discussions" <[email protected]>


To
[email protected]
cc
Subject
Housekeeping reader files





Hello,

I had a very old VM* (ESA 2.2.0) running on a R/390, but after a hardware
failure i'm running now on my backup machine (PC/390) with VM/ESA 2.1.0.
Some exec's don't run, because there is new functions between ESA 210 an ESA
220 especially with the format date ISO (very useful...).
I need some tools for cleaning daily spool files and also a memo for the
REXXDATE program (I have the program but not the doc!)

*This VM run daily from 1985 some FORTRAN programs to manage dams for
prevent flood from Loire.

Thank you for your help

J-Marc Gibey
Direction régionale de l'environnement
Service de prévisions des crues
Orléans - France



The information contained in this e-mail and any accompanying documents may contain information that is confidential or otherwise protected from disclosure. If you are not the intended recipient of this message, or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message, including any attachments. Any dissemination, distribution or other use of the contents of this message by anyone other than the intended recipient is strictly prohibited.

Reply via email to