program DayCodeDriver; {Reads the day of January 1 and the year and prints calendar. Demo for stubs, drivers, and enumerated types.} type DayType = (Sun, Mon, Tue, Wed, Thu, Fri, Sat); WeekdayType = Mon..Fri; MonthType = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); YearType = 1500..2500; {valid for Gregorian calendar} var Year : Yeartype; {input - the calendar year} StartDay : Daytype; {input - New Year's Day} DayCh1,DayCh2,DayCh3 : Char; {input - letters in day name} Month : MonthType; {the current month} FebFlag : Boolean; {true for leap years} procedure DayCode(Ch1,Ch2: Char; var Day : DayType); {stub of day conversion - returns Sun or Mon} begin case Ch1 of 'S','s' : if (Ch2 = 'u') or (Ch2 = 'U') then Day := Sun else if (Ch2 = 'a') or (Ch2 = 'A') then Day := Sat else WriteLn('BadDayCode'); 'M','m' : Day := Mon; 'T','t' : if (Ch2 = 'u') or (Ch2 = 'U') then Day := Tue else if (Ch2 = 'h') or (Ch2 = 'H') then Day := Thu else WriteLn('BadDayCode'); 'W','w' : Day := Wed; 'F','f' : Day := Fri else WriteLn('BadDayCode') end{Case Ch1}; end;{DayCode} begin{main program} WriteLn('Use the first 3 letters to identify the day.'); ReadLn(DayCh1, DayCh2, DayCh3); DayCode(DayCh1,DayCh2,StartDay); end.