Yes, you are absolutely right. I thought it was the other way round, divisble by 100 being leap years and by 400 not leap years. It should have been LEAP = (YEAR-YEAR%4*4=0 & YEAR-YEAR%100*100¬=0 | YEAR-YEAR%400*400=0) This does not affect the calculations themselves, but it does report incorrectly e.g. that 2000.0229 is not valid. Thanks a lot for pointing this out. Cheers, Chris Poncelet
On 27/04/2020 10:01, David Crayford wrote: > FYI, you have a bug with your leap year calculation. You need to check > if the year is evenly dividable by 100 (which are not leap years > unless evenly divisible by 400). > > isleap: procedure > arg year . > return (year // 4 = 0 & year // 100 /= 0 ) | year // 400 = 0 > > On 2020-04-24 2:01 PM, CM Poncelet wrote: >> I attach a Rexx program to calculate and display the biorhythm values >> for a given date of birth and current or whatever other date. >> If 'management' complains that home workers are not putting enough >> effort into their working-from-home time, they can run this thing and >> send its output to 'management' just to prove that they are in perfect >> working condition and that any slow-down in productivity must be due to >> external factors which are wholly beyond their control <g>. >> Cheers, Chris Poncelet (retired sysprog) >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > . > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
