रूबी डेट और डेटटाइम कक्षाओं में तिथि अंकगणित का समर्थन करती है , जो रूबी के मानक पुस्तकालय का हिस्सा हैं। वे दोनों वर्ग # + और # - विधियों को उजागर करते हैं, जो किसी तिथि या समय से दिनों को जोड़ते और घटाते हैं।
$ irb
> require 'date'
=> true
> (DateTime.new(2015,4,1) - 90).to_s
=> "2015-01-01T00:00:00+00:00"
> (DateTime.new(2015,4,1) - 1).to_s
=> "2015-03-31T00:00:00+00:00"
दिनों के बजाय महीनों पर संचालित करने के लिए # << और # >> विधियों का उपयोग करें । महीनों पर अंकगणित दिनों पर अंकगणित की तुलना में थोड़ा अलग है। दिनांक समय के बजाय दिनांक का उपयोग करने से प्रभाव अधिक स्पष्ट हो जाता है।
> (Date.new(2015, 5, 31) << 3).to_s
=> "2015-02-28"
अपने जॉडा-टाइम उदाहरण के बाद, आप रूबी में कुछ इस तरह लिख सकते हैं।
now = DateTime.now
ninety_days_ago = now - 90
या शायद बस
ninety_days_ago = DateTime.now - 90