Skip to content

Instantly share code, notes, and snippets.

@matthewpick
Last active September 8, 2017 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthewpick/2a6975cdb199288c5dd820635ceeac02 to your computer and use it in GitHub Desktop.
Save matthewpick/2a6975cdb199288c5dd820635ceeac02 to your computer and use it in GitHub Desktop.
Based on a bi-weekly pay cycle, determine which months you will receive an extra paycheck.
require 'active_support/time'
def paycheck_count(begin_date, years)
month_count = {}
end_date = begin_date + years.years
time_counter = begin_date
while time_counter < end_date do
key = "#{time_counter.year}.#{time_counter.month}"
if month_count[key]
month_count[key] += 1
else
month_count[key] = 1
end
time_counter += 2.weeks
end
month_count.map{|year_month, count| year_month if count > 2}.compact
end
puts "#{paycheck_count(Date.new(2017,9,8), 5).join(' ')} have extra paychecks"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment