ツェラーの公式

def weekday_by_zeller(y,m,d)
      y -= 1 if m == 1 or m == 2
      m += 12 if m == 1 or m == 2
      h = y + (y/4).floor - (y/100).floor + (y/400).floor + ((13*m+8)/5).floor + d
      return "sun"     if h % 7 == 0
      return "mon"   if h % 7 == 1
      return "tue"     if h % 7 == 2
      return "wed"    if h % 7 == 3
      return "thu"     if h % 7 == 4
      return "fri"       if h % 7 == 5
      return "sat"     if h % 7 == 6
    end

忘れていて絶望したのでメモ