Module: JactiveSupport::JavaExtensions::Date::Calculations
- Included in:
- javajava::util::Date
- Defined in:
- lib/jactive_support/java_ext/date/calculations.rb
Constant Summary collapse
- CALCULATION_FIELDS =
{ :years => ::Java::JavaUtil::Calendar::YEAR, :months => ::Java::JavaUtil::Calendar::MONTH, :weeks => ::Java::JavaUtil::Calendar::WEEK_OF_YEAR, :days => ::Java::JavaUtil::Calendar::DAY_OF_MONTH, :hours => ::Java::JavaUtil::Calendar::HOUR_OF_DAY, :minutes => ::Java::JavaUtil::Calendar::MINUTE, :seconds => ::Java::JavaUtil::Calendar::SECOND, :millis => ::Java::JavaUtil::Calendar::MILLISECOND }
Instance Method Summary collapse
- #advance(options) ⇒ Object
- #age(since = java.util.Date.new) ⇒ Object
- #difference(field = :years, since = java.util.Date.new) ⇒ Object
Instance Method Details
#advance(options) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/jactive_support/java_ext/date/calculations.rb', line 16 def advance() cal = ::Java::JavaUtil::Calendar.getInstance cal.setTime(self) .each do |field, value| cal.add(CALCULATION_FIELDS[field], value) end cal.getTime end |
#age(since = java.util.Date.new) ⇒ Object
25 26 27 |
# File 'lib/jactive_support/java_ext/date/calculations.rb', line 25 def age(since=java.util.Date.new) difference(:years, since) end |
#difference(field = :years, since = java.util.Date.new) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/jactive_support/java_ext/date/calculations.rb', line 29 def difference(field=:years, since=java.util.Date.new) local_date = ::Java::OrgJodaTime::LocalDate.fromDateFields(self) since_date = ::Java::OrgJodaTime::LocalDate.fromDateFields(since) if field == :days return ::Java::OrgJodaTime::Days.daysBetween(local_date, since_date).getDays elsif field == :months return ::Java::OrgJodaTime::Months.monthsBetween(local_date, since_date).getMonths else return ::Java::OrgJodaTime::Years.yearsBetween(local_date, since_date).getYears end end |