summaryrefslogtreecommitdiff
path: root/lib/date
diff options
context:
space:
mode:
Diffstat (limited to 'lib/date')
-rw-r--r--lib/date/delta.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/date/delta.rb b/lib/date/delta.rb
index 283faf6ac2..eacfdefc62 100644
--- a/lib/date/delta.rb
+++ b/lib/date/delta.rb
@@ -1,5 +1,6 @@
# delta.rb: Written by Tadayoshi Funaba 2004-2009
+require 'date'
require 'date/delta/parser'
class Date
@@ -398,3 +399,33 @@ class Date
end
end
+
+vsave = $VERBOSE
+$VERBOSE = false
+
+class Date
+
+ def + (n)
+ case n
+ when Numeric; return self.class.new!(@ajd + n, @of, @sg)
+ when Delta
+ d = n.__send__(:delta)
+ return (self >> d.imag) + d.real
+ end
+ raise TypeError, 'expected numeric'
+ end
+
+ def - (x)
+ case x
+ when Numeric; return self.class.new!(@ajd - x, @of, @sg)
+ when Date; return @ajd - x.ajd
+ when Delta
+ d = x.__send__(:delta)
+ return (self << d.imag) - d.real
+ end
+ raise TypeError, 'expected numeric'
+ end
+
+end
+
+$VERBOSE = vsave