

'begin' # 8.9. calendar #
  'proc'what=('int'month,day,year)'void':
    ('bool'greg=year>1582'or'year=1582'and'month*100+day>=1015;
     'bool'leap=year%*4=0'and'
		('not'greg'or'year%*100/=0'or'year%*400=0);
     'int'r=day+year
	    + 'case'month'in'0,3,3,6,1,4,6,2,5,0,3,5'esac'
	    + 'if'greg'then'
			'int'j=year-1600;year%4-j%100+j%400-10
	      'else'year%4'fi'
	    - 'abs'(leap'and'month<3);
     print((blank*17,"that day is ",
	'case'r%*7'in'"Friday","Saturday","Sunday",
		      "Monday","Tuesday","Wednesday"
		  'out'"Thursday"'esac', newline))
    );
  'while''int'month,day,year;
	print("your date (month, day, year)? "); read((month,day,year));
	month>0'and'month<13
  'do'what(month,day,year)'od'
'end'

