I hope Mark won't mind, but I changed the code a bit to work for Europe:

address command
resultfile='TZ CHANGES A'
'FINIS' resultfile
'ERASE' resultfile
Do yyyy=2007 to 2041
   'EXECIO 1 DISKW' resultfile '(STRING   ' GetSpring(yyyy)
   'EXECIO 1 DISKW' resultfile '(STRING   ' GetFall(yyyy)
End
'FINIS' resultfile
say 'Results are now contained in file:' resultfile
Exit rc
GetSpring: /* Find last Sunday in March */
 parse arg year .
 Do dx=year'0331' by -1 for 7 until dow='Sunday'
    dow=date('W',dx,'S')
 End
return 'Timezone_Boundary on' ,
          date('S',dx,'S','-') , /* In yyyy-mm-dd fmt  */
         'at 02:00:00 to SUM'
GetFall: /* Find last Sunday in October */
 parse arg year .
 Do dx=year'1031' by -1 for 7 until dow='Sunday'
    dow=date('W',dx,'S')
 end
Return 'Timezone_Boundary on' ,
          date('S',dx,'S','-') , /* In yyyy-mm-dd fmt  */
         'at 03:00:00 to WIN'

2009/10/15 Mike Walter <[email protected]>
>
> > ...Rolly
> >
> >Oh, BTW, any one has the time change dates for 2009 - 201x? TIA.
>
> Run the TZDATES EXEC pasted below.
>
> Mike Walter
> Hewitt Associates
> The opinions expressed herein are mine alone, not my employer's.
>
> /* Prolog; See Epilog for additional information ********************
>  * Exec Name     - TZDATES  EXEC                                    *
>  * Unit Support  - OSS/VM                                           *
>  * Status        - Version 2, Release 1.0                           *
>  ********************************************************************/
>
>   address 'COMMAND'
>   parse source xos xct xfn xft xfm xcmd xenvir .
>   parse upper arg parms 1 operands '(' options ')' parmrest
>
>   If operands='?' then Signal Explain
>   parse var operands tz .
>   If tz='' then tz='C'
>   ltz=length(tz)
>   If ltz<>1 then
>      Do
>        say xfn'; Invalid timezone character, length not "1".' ,
>               'Found "'tzc'".'
>        say 'For more help, issue:' xfn '?'
>        Call Exit 20
>      End
>
>   resultfile=xfn 'BOUNDS A'
>  'FINIS' resultfile
>  'ERASE' resultfile
>
>   Signal ON Error
>   Do ix=2007 to 2041        /* What years do we want to cover?      */
>      /* As of 2005-09-27, dates beginning in 2042 cause error msg:  */
>      /* HCPZPM6706E Invalid date - 2042-mm-dd                       */
>      /* There's time for an APAR before then...                     */
>      spring=GetSpring(ix)
>      fall  =GetFall(ix)
>     'EXECIO 1 DISKW' resultfile '0 F 80 (STRING' spring
>     'EXECIO 1 DISKW' resultfile '0 F 80 (STRING' fall
>   End
>  'FINIS' resultfile
>   say xfn 'results are now contained in file:' resultfile
> Call Exit rc
>
> /********************************************************************/
> /*                   Sub-Routines below this point                  */
> /********************************************************************/
>
> Exit:
>   parse arg exitrc .
>   If verify(exitrc,'-0123456789')=0 then Exit exitrc
>                                     else Exit 999999
>
>
> GetSpring:
>   parse arg year .
>   /* Find 1st Sunday in March, beginning in 2007 per the:           */
>   /* "U.S. Government Energy Policy Act of 2005".                   */
>   Do dx=year||0301 by 1 for 7 until dow='Sunday'
>      dow=date('W',dx,'S')
>   End
>   dx=dx+7   /* Ooooh, easy date math! Add 14 for 2nd Sunday in March*/
>   spring='Timezone_Boundary on' ,
>           date('S',dx,'S','-') ,     /* In yyyy-mm-dd fmt           */
>          'at 02:00:00 to' tz'DT'     /* Change to Daylight Time     */
> Return spring
>
>
> GetFall:
>   parse arg year .
>   /* Find 1st Sunday in November beginning in 2007 per the:         */
>   /* "U.S. Government Energy Policy Act of 2005".                   */
>   Do dx=year||1101 by 1 for 7
>      If date('W',dx,'S')<>'Sunday' then Iterate
>      Return 'Timezone_Boundary on' ,
>              date('S',dx,'S','-') ,  /* In yyyy-mm-dd fmt           */
>             'at 02:00:00 to' tz'ST'  /* Change to Standard Time     */
>   End
> Return
>
>
> Error:
>   say '+++ "ERROR" error routine entered in:' xfn xft xfm', rc='rc
>   say '+++ from line:' sigl', which reads:'
>   say '+++'sourceline(sigl)
> Exit 20
>
>
> Syntax:
>   say '+++ "SYNTAX" error routine entered in:' xfn xft xfm', rc='rc
>   say '+++ from line:' sigl', which reads:'
>   say '+++'sourceline(sigl)
> Call Exit 20
>
>
> NoValue:
>   say '+++ "NoValue" error routine entered in:' xfn xft xfm', rc='rc
>   say '+++ from line:' sigl', which reads:'
>   say '+++'sourceline(sigl)
>   say '+++ Variable with no value is:' condition('Description')
> Call Exit 24
>
>
> Explain:
>  'PIPE (NAME Explain)' ,
>     '| <' xfn xft xfm ,
>     '| INSIDE /ExplainBegin:/ /ExplainEnd:/' ,
>     '| PREFACE STRLITERAL /'xfn xft xfm 'help.../' ,
>     '| CONSOLE'
>   Call Exit 0
> /*
> ExplainBegin:
>
> Unless changed, TZDATES will produce a file suitable for inclusion in
> "SYSTEM CONFIG" on MAINT's CF1, CF2, etc. disks to define the Spring and
> Fall Daylight/Standard timezones.
>
>
>
>            +-C--------+
> >>-TZDATES--+----------+-----------------------------------------------><
>            +-timezone-+
>            +-?--------+
>
> Where:
>
> timezone
>          is the first character of the timezone to preface "DT" or
>          "ST".  Default="C", as in "CST" and "CDT".
>
> ?
>          displays this command help.
>
> ExplainEnd:
> */
>
> /* Epilog ***********************************************************
>  * Function      - See "Explain:" subrtn above.                     *
>  * Component of  - z/VM Sysprog's Toolbox.                          *
>  * Command format- See "Explain:" subrtn above.                     *
>  * Called by     - Prepared z/VM Sysprogs.                          *
>  * Dependencies  - VM/ESA                                           *
>  * Program Lang. - CMS REXX                                         *
>  * Date Written  - ?                                                *
>  * Author        - Michael R. Walter                                *
>  * Changed | By  | Description of Change                            *
>  * --------+-----+------------------------------------------------- *
>  * 20070301  mrw - Update for 2007 US gov't timezone changes.       *
>  *                                                                  *
>  ********************************************************************/
>
>
>
> 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. All messages sent to and from this e-mail address may be 
> monitored as permitted by applicable law and regulations to ensure compliance 
> with our internal policies and to protect our business. E-mails are not 
> secure and cannot be guaranteed to be error free as they can be intercepted, 
> amended, lost or destroyed, or contain viruses. You are deemed to have 
> accepted these risks if you communicate with us by e-mail.



--
Kris Buelens,
IBM Belgium, VM customer support

Reply via email to