home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / Demo / stoffel / Last_Wed.py < prev    next >
Text File  |  1992-09-20  |  2KB  |  65 lines

  1. # -- Program: Last_Wed.T
  2. # -- Language: Turing
  3. # -- Written: JCE, 89-3-20
  4. # -- Purpose: To determine the last Wednesday of every month in a given year.
  5.  
  6. #type Days : enum (Su, Mo, Tu, We, Th, Fr, Sa, Invalid)
  7.  
  8. l_day = Days.We /* parameter? */# const
  9. me : array Days of string = init# const
  10.     ('Sun', 'Mon', 'Tues', 'Wednes', 'Thurs', 'Fri', 'Sat', 'XXX')
  11.  
  12.  1;  const Feb = 2;  const Dec := 12 /* enum/for problem? */# const
  13. #var Days_in : array Jan .. Dec of 28 .. 31 = init
  14.     (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
  15.  
  16. def Is_leap (Year : int) : boolean:  #fcn
  17.     return Year % 4 == 0
  18. #end Is_leap
  19.  
  20. def Next (Day : Days) : Days:  #fcn
  21.     if Day == Days.Sa:
  22.     return Days.Su
  23.     else:
  24.     return succ (Day)
  25.     #end if
  26. #end Next
  27.  
  28. def Get_parameters (var Year : int, var Day_of_week : Days):  #proc
  29.     print 'Please enter the year, e.g. 89: ' ..;
  30.     Year = input()
  31.     while 1:
  32.     print 'Enter the day of the week that 1 Jan. fell on, e.g. Su: ',
  33. #    var In_day_name : string
  34.     In_day_name = input()
  35.     for D in range(Day,   for D : Days):
  36.         Day_of_week = D
  37.         if In_day_name (1 .. 2) == Day_name (D) (1 .. 2): break
  38.     #end for
  39.     if Day_of_week not= Days.Invalid: break
  40.     #end loop
  41. #end Get_parameters
  42.  
  43. # -- -- -- -- -- -- -- Main -- -- -- -- -- -- --
  44.  
  45. #var Year : int
  46. #var Day_of_week : Days
  47. Get_parameters (Year, Day_of_week)
  48. if Is_leap (Year):
  49.     Days_in (Feb) = 29
  50. #end if
  51.  
  52. print '\n', 'Last ', Day_name (Special_day), 'day of every month: '
  53.  
  54. for Month in range(Jan, Dec):
  55.     for Day_of_month in range(1, Days_in (Month)):
  56.     if Day_of_week == Special_day:
  57.         if Days_in (Month) - Day_of_month < 7:
  58.         print Month : 2, '.  ', Year, '-', Month, '-',
  59.             Day_of_month
  60.         #end if
  61.     #end if
  62.     Day_of_week = Next (Day_of_week)
  63.     #end for
  64. #end for
  65.