mirror of
https://github.com/jimeh/greek_easter.git
synced 2026-02-19 04:46:39 +00:00
initial import
This commit is contained in:
16
Rakefile
Normal file
16
Rakefile
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
begin
|
||||
require 'jeweler'
|
||||
Jeweler::Tasks.new do |gemspec|
|
||||
gemspec.name = "greek_easter"
|
||||
gemspec.summary = "Never wonder again when easter is in Greece."
|
||||
gemspec.description = "Never wonder again when easter is in Greece."
|
||||
gemspec.email = "contact@jimeh.me"
|
||||
gemspec.homepage = "http://github.com/jimeh/greek_easter"
|
||||
gemspec.executables = ["greek_easter"]
|
||||
gemspec.authors = ["Jim Myhrberg"]
|
||||
end
|
||||
Jeweler::GemcutterTasks.new
|
||||
rescue LoadError
|
||||
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
||||
end
|
||||
5
bin/greek_easter
Executable file
5
bin/greek_easter
Executable file
@@ -0,0 +1,5 @@
|
||||
#! /usr/bin/env ruby
|
||||
require "rubygems"
|
||||
require "../lib/greek_easter"
|
||||
|
||||
puts GreekEaster.at(ARGV[0])
|
||||
24
lib/greek_easter.rb
Normal file
24
lib/greek_easter.rb
Normal file
@@ -0,0 +1,24 @@
|
||||
class GreekEaster
|
||||
|
||||
def self.at(year = nil)
|
||||
date = self.easter(year)
|
||||
return "In the year #{date.year}, the Greek Easter is on #{date.strftime("%d %B")}.";
|
||||
end
|
||||
|
||||
def self.easter(year = nil)
|
||||
year = Time.now.year if year.nil?
|
||||
year = year.to_i if year.is_a?(String)
|
||||
a = year % 19
|
||||
b = year % 4
|
||||
c = year % 7
|
||||
d = (19 * a + 16) % 30
|
||||
e = (2 * b + 4 * c + 6 * d) % 7;
|
||||
easter = 3 + d + e;
|
||||
if easter <= 30
|
||||
Time.local(year, 4, easter)
|
||||
else
|
||||
Time.local(year, 5, (easter - 30))
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user