home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / hcshdemo.zip / csh-os2.zip / SAMPLES / EASTER.CSH < prev    next >
Text File  |  1993-09-28  |  1KB  |  34 lines

  1. #    Calculate when Easter will occur in any given year.
  2. #    Copyright (c) 1991 by Hamilton Laboratories.  All rights reserved.
  3.  
  4. proc easter (year)
  5.     local a, b, c, d, e, f, g, h, i, k, l, m, n, month, day
  6.     set month = January February March April May June ^
  7.         July August September October November December
  8.     if (year == "") @ year = `date`:3
  9.     if (year >= 1583) then
  10.         # Gregorian calendar
  11.         @ a = year % 19;  @ b = year // 100;  @ c = year % 100
  12.         @ d = b // 4;  @ e = b % 4;  @ f = (b + 8) // 25
  13.         @ g = (b - f + 1) // 3
  14.         @ h = (19 * a + b - d - g + 15) % 30
  15.         @ i = c // 4;  @ k = c % 4
  16.         @ l = (32 + 2 * e + 2 * i - h - k) % 7
  17.         @ m = (a + 11 * h + 22 * l) // 451
  18.         @ n = h + l - 7 * m + 114
  19.         @ month = month[n // 31 - 1]
  20.         @ day = n % 31 + 1
  21.     else
  22.         # Julian calendar
  23.         @ a = year % 4;  @ b = year % 7;  @ c = year % 19;  
  24.         @ d = (19 * c + 15) % 30
  25.         @ e = (2 * a + 4 * b - d + 34) % 7
  26.         @ f = d + e + 114
  27.         @ month = month[f // 31 - 1]
  28.         @ day = f % 31 + 1
  29.     end
  30.     return "$month $day $year"
  31. end
  32.  
  33. easter $argv
  34.