home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2368 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  1.3 KB  |  44 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __author__ = 'Gustavo Niemeyer <gustavo@niemeyer.net>'
  5. __license__ = 'PSF License'
  6. import datetime
  7. __all__ = [
  8.     'easter',
  9.     'EASTER_JULIAN',
  10.     'EASTER_ORTHODOX',
  11.     'EASTER_WESTERN']
  12. EASTER_JULIAN = 1
  13. EASTER_ORTHODOX = 2
  14. EASTER_WESTERN = 3
  15.  
  16. def easter(year, method = EASTER_WESTERN):
  17.     if method <= method:
  18.         pass
  19.     elif not method <= 3:
  20.         raise ValueError, 'invalid method'
  21.     
  22.     y = year
  23.     g = y % 19
  24.     e = 0
  25.     if method < 3:
  26.         i = (19 * g + 15) % 30
  27.         j = (y + y // 4 + i) % 7
  28.         if method == 2:
  29.             e = 10
  30.             if y > 1600:
  31.                 e = e + y // 100 - 16 - (y // 100 - 16) // 4
  32.             
  33.         
  34.     else:
  35.         c = y // 100
  36.         h = ((c - c // 4 - (8 * c + 13) // 25) + 19 * g + 15) % 30
  37.         i = h - (h // 28) * (1 - (h // 28) * (29 // (h + 1)) * ((21 - g) // 11))
  38.         j = ((y + y // 4 + i + 2 - c) + c // 4) % 7
  39.     p = (i - j) + e
  40.     d = 1 + (p + 27 + (p + 6) // 40) % 31
  41.     m = 3 + (p + 26) // 30
  42.     return datetime.date(int(y), int(m), int(d))
  43.  
  44.