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
13 14 15 |
# File 'lib/dates_toolbox.rb', line 13 def format @format end |
Instance Method Details
#day_of_the_week(date1, format_string = format) ⇒ Object
47 48 49 |
# File 'lib/dates_toolbox.rb', line 47 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
55 56 57 |
# File 'lib/dates_toolbox.rb', line 55 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
63 64 65 |
# File 'lib/dates_toolbox.rb', line 63 def day_of_the_year(date1, format_string = format) parse_date(date1, format_string).yday end |
#days_between(date1, date2, format_string = format) ⇒ Object
67 68 69 70 71 72 |
# File 'lib/dates_toolbox.rb', line 67 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
43 44 45 |
# File 'lib/dates_toolbox.rb', line 43 def dotw(date1, format_string = format) day_of_the_week(date1, format_string) end |
#dotwn(date1, format_string = format) ⇒ Object
51 52 53 |
# File 'lib/dates_toolbox.rb', line 51 def dotwn(date1, format_string = format) day_of_the_week_name(date1, format_string) end |
#doty(date1, format_string = format) ⇒ Object
59 60 61 |
# File 'lib/dates_toolbox.rb', line 59 def doty(date1, format_string = format) day_of_the_year(date1, format_string) end |
#parse_date(date1, format_string) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/dates_toolbox.rb', line 22 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
18 19 20 |
# File 'lib/dates_toolbox.rb', line 18 def test_format (parse_date('1/1/1970', format).wday == 6) end |
#the_day(date1, format_string = format) ⇒ Object
31 32 33 |
# File 'lib/dates_toolbox.rb', line 31 def the_day(date1, format_string = format) parse_date(date1, format_string).day end |
#the_month(date1, format_string = format) ⇒ Object
35 36 37 |
# File 'lib/dates_toolbox.rb', line 35 def the_month(date1, format_string = format) parse_date(date1, format_string).month end |
#the_year(date1, format_string = format) ⇒ Object
39 40 41 |
# File 'lib/dates_toolbox.rb', line 39 def the_year(date1, format_string = format) parse_date(date1, format_string).year end |
#weekdays(date1, date2, format_string = format) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'lib/dates_toolbox.rb', line 88 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
97 98 99 |
# File 'lib/dates_toolbox.rb', line 97 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
74 75 76 77 78 79 80 81 82 |
# File 'lib/dates_toolbox.rb', line 74 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
84 85 86 |
# File 'lib/dates_toolbox.rb', line 84 def weekends_string(date1, date2, format_string = format) weekends(date1, date2, format_string).map { |n| n.strftime(format) } end |