From 5588c77026e0ce19176da15ee331ba0d2cd4439c Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Fri, 5 Mar 2010 04:04:27 +0200 Subject: [PATCH] initial import --- Rakefile | 16 ++++++++++++++++ bin/greek_easter | 5 +++++ lib/greek_easter.rb | 24 ++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 Rakefile create mode 100755 bin/greek_easter create mode 100644 lib/greek_easter.rb diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..f81416c --- /dev/null +++ b/Rakefile @@ -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 diff --git a/bin/greek_easter b/bin/greek_easter new file mode 100755 index 0000000..ea36463 --- /dev/null +++ b/bin/greek_easter @@ -0,0 +1,5 @@ +#! /usr/bin/env ruby +require "rubygems" +require "../lib/greek_easter" + +puts GreekEaster.at(ARGV[0]) \ No newline at end of file diff --git a/lib/greek_easter.rb b/lib/greek_easter.rb new file mode 100644 index 0000000..d670aae --- /dev/null +++ b/lib/greek_easter.rb @@ -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 \ No newline at end of file