summaryrefslogtreecommitdiff
path: root/lib/date.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/date.rb')
-rw-r--r--lib/date.rb16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/date.rb b/lib/date.rb
index 260f6e79ec..cfb9b96904 100644
--- a/lib/date.rb
+++ b/lib/date.rb
@@ -73,8 +73,8 @@ class Date
end
def +(o)
- if o.kind_of?(Integer)
- d = self.period + o
+ if o.kind_of?(Numeric)
+ d = Integer(self.period + o)
elsif o.kind_of?(Date)
d = self.period + o.period
else
@@ -84,10 +84,10 @@ class Date
end
def -(o)
- if o.kind_of?(Integer)
- d = self.period - o
+ if o.kind_of?(Numeric)
+ d = Integer(self.period - o)
elsif o.kind_of?(Date)
- d = self.period - o.period
+ return Integer(self.period - o.period)
else
raise TypeError, "Illegal type. (Integer or Date)"
end
@@ -150,6 +150,12 @@ class Date
end
def Date.at(d)
+ if d.kind_of? Time
+ return Date.new(1900+d.year, d.mon, d.mday)
+ end
+ if d.kind_of? Date
+ return Date.at(d.period)
+ end
mm = 1
yy = (d / 366.0).to_i
if yy != 0