program Calendar; {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, Thur, 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} Ml : Integer; function MonLen( Mth : MonthType; Flag : Boolean) : Integer; begin case Mth of Apr, Jun, Sep, Nov : MonLen := 30; Jan, Mar, May, Jul, Aug, Oct, Dec : MonLen := 31; Feb : if Flag then MonLen := 29 else MonLen := 28; end{case Mth} end;{MonLen} begin{main program} FebFlag := True; for Month := Jan to Dec do begin Ml := MonLen(Month,FebFlag); Write(Ml : 3) end end.