Class: Paxx::DateParser
- Inherits:
-
Object
- Object
- Paxx::DateParser
- Defined in:
- lib/paxx/date/date_parser.rb
Instance Method Summary collapse
- #adjust_year(year) ⇒ Object
- #calc_age(dob) ⇒ Object
- #decode(src) ⇒ Object
-
#decode_6digits_date(dt) ⇒ Object
dd.mm.yy.
Instance Method Details
#adjust_year(year) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/paxx/date/date_parser.rb', line 21 def adjust_year(year) if year < 100 && year <= (Time.now.year-2000) year + 2000 elsif year < 100 && year > (Time.now.year-2000) year + 1900 else year end end |
#calc_age(dob) ⇒ Object
42 43 44 45 46 |
# File 'lib/paxx/date/date_parser.rb', line 42 def calc_age(dob) return nil unless dob now = Time.now.utc.to_date now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1) end |
#decode(src) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/paxx/date/date_parser.rb', line 4 def decode(src) return src if src.is_a?(Time) || src.is_a?(DateTime) return nil unless src && src.rstrip.length > 7 len = src.to_s.strip.length parsed_date = nil begin parsed_date = decode_6digits_date(src) if len == 8 || len == 10 parsed_date = DateTime.parse(src) if !parsed_date rescue => e puts "Exception Paxx::DateParser>#{src} e=#{e}" parsed_date = Chronic.parse(src) end parsed_date end |
#decode_6digits_date(dt) ⇒ Object
dd.mm.yy
34 35 36 37 38 39 40 |
# File 'lib/paxx/date/date_parser.rb', line 34 def decode_6digits_date dt day = dt[0, 2].to_i month = dt[3, 2].to_i year = adjust_year(dt[6, 4].to_i) Time.local(year, month, day) end |