Determine what day of the week a date falls on
[Autolink] Menu
/* sample code to determine what day of the week a date falls on */
/* */
/* Source: Found in a message in a public news group */
/* */
do forever
say 'Enter the date in the format dd.mm.yyyy (<return> to exit):'
thisDate = strip( translate( lineIn() ) )
if thisDate = '' then
leave
say 'The day of the week for the ' || thisDate || ,
' is: ' || dayOfTheWeek( thisDate )
end /* do forever */
exit
/* ------------------------------------------------------------------ */
/* function: Determine what day of the week a date falls on */
/* */
/* call: dayOfTheWeek = DayOfTheWeek( thisDate ) */
/* */
/* where: thisDate - date in the format dd.mm.yyyy */
/* */
/* returns: the name of the day or ERROR in case of an error */
/* */
/* */
DayOfTheWeek: PROCEDURE
/* install a local error handler */
signal on syntax name DayOfTheWeekError
sep = '.'
parse arg dd (sep) mm (sep) year
days = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
magic = 6 2 3 6 1 4 6 2 5 0 3 5
parse var year cent +2 yr
leap = year // 4 = 0 & (yr\=0 | cent//4=0)
dow=yr + yr%4 + (6-2*(cent//4)) + word(magic,mm) + dd
if mm < 3 & \leap then
dow=dow+1
dow = dow // 7
return word(days,dow+1)
DayOfTheWeekError:
return 'ERROR'
[Back: Convert Microsoft/IEEE Float binary into a string in Object REXX]
[Next: Input & Output]