NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

easter.py (980B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dateutil\easter.py
      2 import datetime
      3 __all__ = ['easter',
      4  'EASTER_JULIAN',
      5  'EASTER_ORTHODOX',
      6  'EASTER_WESTERN']
      7 EASTER_JULIAN = 1
      8 EASTER_ORTHODOX = 2
      9 EASTER_WESTERN = 3
     10 
     11 def easter(year, method = EASTER_WESTERN):
     12     if not 1 <= method <= 3:
     13         raise ValueError('invalid method')
     14     y = year
     15     g = y % 19
     16     e = 0
     17     if method < 3:
     18         i = (19 * g + 15) % 30
     19         j = (y + y // 4 + i) % 7
     20         if method == 2:
     21             e = 10
     22             if y > 1600:
     23                 e = e + y // 100 - 16 - (y // 100 - 16) // 4
     24     else:
     25         c = y // 100
     26         h = (c - c // 4 - (8 * c + 13) // 25 + 19 * g + 15) % 30
     27         i = h - h // 28 * (1 - h // 28 * (29 // (h + 1)) * ((21 - g) // 11))
     28         j = (y + y // 4 + i + 2 - c + c // 4) % 7
     29     p = i - j + e
     30     d = 1 + (p + 27 + (p + 6) // 40) % 31
     31     m = 3 + (p + 26) // 30
     32     return datetime.date(int(y), int(m), int(d))