CoffeeScript 計算復活節(jié)的日期

2022-06-29 16:57 更新

計算復活節(jié)的日期

問題

你需要在給出的年份中找到復活節(jié)的月份和日期。

解決方案

下面的函數(shù)返回數(shù)組有兩個要素:復活節(jié)的月份( 1-12 )和日期。如果沒有給出任何參數(shù),給出的結(jié)果是當前的一年。這是在CoffeeScript的匿名公歷算法實現(xiàn)的。

gregorianEaster = (year = (new Date).getFullYear()) ->
  a = year % 19
  b = ~~(year / 100)
  c = year % 100
  d = ~~(b / 4)
  e = b % 4
  f = ~~((b + 8) / 25)
  g = ~~((b - f + 1) / 3)
  h = (19 * a + b - d - g + 15) % 30
  i = ~~(c / 4)
  k = c % 4
  l = (32 + 2 * e + 2 * i - h - k) % 7
  m = ~~((a + 11 * h + 22 * l) / 451)
  n = h + l - 7 * m + 114
  month = ~~(n / 31)
  day = (n % 31) + 1
  [month, day]

討論

Javascript中的月份是0-11。getMonth()查找的是三月的話將返回數(shù)字2 ,這個函數(shù)會返回3。如果你想要這個功能是一致的,你可以修改這個函數(shù)。

該函數(shù)使用~~符號代替來Math.floor()。

gregorianEaster()    # => [4, 24] (April 24th in 2011)
gregorianEaster 1972 # => [4, 2]
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號