HP OpenVMS Systemsask the wizard 
The Question is: I like to run a batch job Friday every four weeks. I would submit a job whenever i=0; i = mod((Nn),28) where N is today's Julian calander day dount, n is the Julian calendar day count of the first friday. How can I get the Julian calenday day count form the MVS time and is there a DCL modulo operator? The Answer is : DCL does not have particularly elegant mechanisms for manipulating dates and date values  it is often easiest to submit the job more often than it is needed, and have the job detect and exit (after immediately resubmitting itself for the next interval via, say, $ SUBMIT/AFTER="+28") when the job is not needed. This means that a natch job that is selfresubmitted daily (SUBMIT/AFTER=TOMORROW) can perform one set of actions on most days, and can be coded to perform another set of tasks on a specific day of the week (or month, etc). For a tool that directly works with the Julian day (via the lib$day RTL call and DCL symbols), please see the DSBD tools in the area: http://www.hp.com/go/openvms/freeware Look in the SRH_EXAMPLES area available on several of the Freeware releases. If you have a scheduled daily batch job, and want to determine the day number in the current year, then you could use a DCL sequence such as the following: $ if p1 .eqs. "" $ then $ now = f$time() $ else $ now = p1 $ endif $ month= f$integer(f$cvtime(now,,"MONTH")) $ year = f$integer(f$cvtime(now,,"YEAR")) $ if f$integer(f$cvtime("28FEB''year'+1",,"MONTH")) .eq. 2 $ then $ ! Specified date is a leap year... $ days="0,0,31,60,91,121,152,182,213,244,274,305,335" $ else $ ! Specified date is NOT a leap year... $ days="0,0,31,59,90,120,151,181,212,243,273,304,334" $ endif $ julianday = f$integer(f$element(month,",",days)) $ julianday = julianday + f$integer(f$cvtime(p1,,"DAY")) $ show symbol julianday Note that: $ if f$integer(f$cvtime("28FEB''year'+1",,"MONTH")) .eq. 2 can be shortened to: $ if f$integer(f$cvtime("28FEB''year'+1",,"MONTH")) Now as to why this particular command and this command construct will work in this context, that is left up to the reader.
