Class: Date

Inherits:
Object
  • Object
show all
Defined in:
lib/weekend_warrior.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_weekday(original_date = Date.today) ⇒ Object



58
59
60
61
62
63
# File 'lib/weekend_warrior.rb', line 58

def self.next_weekday(original_date = Date.today)
  weekdays = 1..5
  result = original_date
  result += 1 until result > original_date && weekdays.member?(result.wday)
  result
end

.previous_weekday(original_date = Date.today) ⇒ Object



72
73
74
75
76
77
# File 'lib/weekend_warrior.rb', line 72

def self.previous_weekday(original_date = Date.today)
  weekdays = 1..5
  result = original_date
  result -= 1 until result < original_date && weekdays.member?(result.wday)
  result    
end

.weekday(original_date = Date.today) ⇒ Object



65
66
67
68
69
70
# File 'lib/weekend_warrior.rb', line 65

def self.weekday(original_date = Date.today)
  weekdays = 1..5
  result = original_date
  result += 1 until result >= original_date && weekdays.member?(result.wday)
  result
end

Instance Method Details

#go_back_by_weekdays(num_days) ⇒ Object



90
91
92
93
94
95
96
97
98
99
# File 'lib/weekend_warrior.rb', line 90

def go_back_by_weekdays(num_days)
  
  past = self.dup
  
  num_days.times do
    past = self.class.previous_weekday(past)
  end
  
  past
end

#go_forward_by_weekdays(num_days) ⇒ Object



79
80
81
82
83
84
85
86
87
88
# File 'lib/weekend_warrior.rb', line 79

def go_forward_by_weekdays(num_days)
  
  future = self.dup
  
  num_days.times do
    future = self.class.next_weekday(future)
  end
  
  future
end