Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/dates_toolbox.rb
Overview
Docs to follow
Instance Attribute Summary collapse
-
#format ⇒ Object
rubocop:disable Lint/DuplicateMethods.
Instance Method Summary collapse
- #day_of_the_week(date1, format_string = format) ⇒ Object
- #day_of_the_week_name(date1, format_string = format) ⇒ Object
- #day_of_the_year(date1, format_string = format) ⇒ Object
- #days_between(date1, date2, format_string = format) ⇒ Object
- #dotw(date1, format_string = format) ⇒ Object
- #dotwn(date1, format_string = format) ⇒ Object
- #doty(date1, format_string = format) ⇒ Object
- #parse_date(date1, format_string) ⇒ Object
-
#test_format ⇒ Object
rubocop:enable Lint/DuplicateMethods.
- #the_day(date1, format_string = format) ⇒ Object
- #the_month(date1, format_string = format) ⇒ Object
- #the_year(date1, format_string = format) ⇒ Object
- #weekdays(date1, date2, format_string = format) ⇒ Object
- #weekdays_string(date1, date2, format_string = format) ⇒ Object
- #weekends(date1, date2, format_string = format) ⇒ Object
- #weekends_string(date1, date2, format_string = format) ⇒ Object
Instance Attribute Details
#format ⇒ Object
rubocop:disable Lint/DuplicateMethods
15 16 17 |
# File 'lib/dates_toolbox.rb', line 15 def format @format end |
Instance Method Details
#day_of_the_week(date1, format_string = format) ⇒ Object
49 50 51 |
# File 'lib/dates_toolbox.rb', line 49 def day_of_the_week(date1, format_string = format) parse_date(date1, format_string).wday end |
#day_of_the_week_name(date1, format_string = format) ⇒ Object
57 58 59 |
# File 'lib/dates_toolbox.rb', line 57 def day_of_the_week_name(date1, format_string = format) Date::DAYNAMES[day_of_the_week(date1, format_string)] end |
#day_of_the_year(date1, format_string = format) ⇒ Object
65 66 67 |
# File 'lib/dates_toolbox.rb', line 65 def day_of_the_year(date1, format_string = format) parse_date(date1, format_string).yday end |
#days_between(date1, date2, format_string = format) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/dates_toolbox.rb', line 69 def days_between(date1, date2, format_string = format) d1 = parse_date(date1, format_string) d2 = parse_date(date2, format_string) d2.mjd - d1.mjd end |
#dotw(date1, format_string = format) ⇒ Object
45 46 47 |
# File 'lib/dates_toolbox.rb', line 45 def dotw(date1, format_string = format) day_of_the_week(date1, format_string) end |
#dotwn(date1, format_string = format) ⇒ Object
53 54 55 |
# File 'lib/dates_toolbox.rb', line 53 def dotwn(date1, format_string = format) day_of_the_week_name(date1, format_string) end |
#doty(date1, format_string = format) ⇒ Object
61 62 63 |
# File 'lib/dates_toolbox.rb', line 61 def doty(date1, format_string = format) day_of_the_year(date1, format_string) end |
#parse_date(date1, format_string) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/dates_toolbox.rb', line 24 def parse_date(date1, format_string) begin return Date.strptime(date1, format_string) rescue ArgumentError => e puts "Invalid date #{date1} with format #{format}" throw e end end |
#test_format ⇒ Object
rubocop:enable Lint/DuplicateMethods
20 21 22 |
# File 'lib/dates_toolbox.rb', line 20 def test_format (parse_date('1/1/1970', format).wday == 6) end |
#the_day(date1, format_string = format) ⇒ Object
33 34 35 |
# File 'lib/dates_toolbox.rb', line 33 def the_day(date1, format_string = format) parse_date(date1, format_string).day end |
#the_month(date1, format_string = format) ⇒ Object
37 38 39 |
# File 'lib/dates_toolbox.rb', line 37 def the_month(date1, format_string = format) parse_date(date1, format_string).month end |
#the_year(date1, format_string = format) ⇒ Object
41 42 43 |
# File 'lib/dates_toolbox.rb', line 41 def the_year(date1, format_string = format) parse_date(date1, format_string).year end |
#weekdays(date1, date2, format_string = format) ⇒ Object
90 91 92 93 94 95 96 97 |
# File 'lib/dates_toolbox.rb', line 90 def weekdays(date1, date2, format_string = format) start_date = parse_date(date1, format_string) end_date = parse_date(date2, format_string) # day of the week in 0-6. Sunday is day-of-week 0; Saturday is day-of-week 6. my_days = (1..5).to_a (start_date..end_date).to_a.select { |k| my_days.include?(k.wday) } end |
#weekdays_string(date1, date2, format_string = format) ⇒ Object
99 100 101 |
# File 'lib/dates_toolbox.rb', line 99 def weekdays_string(date1, date2, format_string = format) weekdays(date1, date2, format_string).map { |n| n.strftime(format) } end |
#weekends(date1, date2, format_string = format) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'lib/dates_toolbox.rb', line 76 def weekends(date1, date2, format_string = format) start_date = parse_date(date1, format_string) end_date = parse_date(date2, format_string) # day of the week in 0-6. Sunday is day-of-week 0; Saturday is day-of-week 6. my_days = [0, 6] (start_date..end_date).to_a.select { |k| my_days.include?(k.wday) } end |
#weekends_string(date1, date2, format_string = format) ⇒ Object
86 87 88 |
# File 'lib/dates_toolbox.rb', line 86 def weekends_string(date1, date2, format_string = format) weekends(date1, date2, format_string).map { |n| n.strftime(format) } end |