Skip to content

Instantly share code, notes, and snippets.

@bdougherty
Created September 30, 2009 06:26
Show Gist options
  • Save bdougherty/197866 to your computer and use it in GitHub Desktop.
Save bdougherty/197866 to your computer and use it in GitHub Desktop.
A script to get the current week of the RIT quarter.
#!/usr/bin/ruby
require 'date'
# Dates
today = Date.today
quarterDates = {
'20081' => Date.parse('Sep 1, 2008'),
'20082' => Date.parse('Dec 1, 2008'),
'20083' => Date.parse('Mar 9, 2009'),
'20084' => Date.parse('Jun 1, 2009'),
'20091' => Date.parse('Sep 7, 2009'),
'20092' => Date.parse('Nov 30, 2009'),
'20093' => Date.parse('Mar 8, 2010')
}
# Define a helper method for a quarter string
class String
def isWinterQuarter?
self[4,1] == '2'
end
end
# Find current quarter
currentQuarter = nil
quarterDates.each do |quarter, startDate|
# Calculate finish date (winter quarter is longer)
quarterLength = (quarter.isWinterQuarter?) ? 88 : 74
finishDate = startDate + quarterLength
# Does today fall within the quarter?
todayInQuarter = true if (today >= startDate && today <= finishDate)
# Cut out break time for winter quarter
if quarter.isWinterQuarter?
breakStart = startDate + 20
breakEnd = breakStart + 14
todayInQuarter = false if (todayInQuarter && (today > breakStart && today < breakEnd))
end
currentQuarter = quarter if (todayInQuarter)
end
# Didn't find a quarter, on break!
if !currentQuarter
puts "On break!"
exit
end
# Calculate the week number
week1StartDate = quarterDates[currentQuarter] - 1
weekNum = (((today - week1StartDate).to_f / 7) + 1).floor
weekNum = weekNum - 2 if (currentQuarter.isWinterQuarter? && weekNum > 3)
# Exam week?
if weekNum > 10
puts "It's exam week"
else
puts "It's week #{weekNum}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment