def p y\x0d g=y%19\x0d f=(g*19+15)%30\x0d c=(y-1500)/100\x0d j=c/25*8+[8,(c%25)/3].min+3\x0d f=(f+y/100-y/400-2-j)%30\x0d if(f==28&&g>=11)\x0d f-=1\x0d elsif f>28\x0d f=28\x0d end\x0d f+7-(y+y/4-y/100+y/400+30+f)%7\x0d end\x0d def c y\x0d m=3\x0d d=21+p(y)\x0d (m+=1;d-=31)if d>31\x0d puts("#{format"%02d",d} #{m==4?"APRIL":"MARCH"}, #{format"%05d",y}")\x0d end\x0d 1000.times{|i|c 2001+i}
Note that non-ascii characters in the above source code will be escaped (such as \x9f).