Created
July 19, 2015 10:42
-
-
Save jackarmley/a4e2de1a8ab55d5e1178 to your computer and use it in GitHub Desktop.
See you next tuesday, a helpful script for letting you know what day of what week is [x] days from today
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* See you next tuesday, | |
* a helpful script for letting | |
* you know what day of what week is [x] | |
* days from today | |
* @author Jack Armley | |
* @param daysNo {interger} - Number of days from today to grab | |
* @param debug {boolean} [false] - Output a more verbose message | |
**/ | |
var seeYouNextTuesday = function(daysNo,debug){ | |
// Set some vars and that, yeah | |
var days = [ | |
'Sunday', | |
'Monday', | |
'Tuesday', | |
'Wednesday', | |
'Thursday', | |
'Friday', | |
'Saturday' | |
]; | |
var currDate = new Date(); | |
var currDay = currDate.getUTCDay(); | |
var seeYouIn = daysNo; | |
var i = 0; | |
var j = currDay; | |
var weeks = 0; | |
var weekPhrases = [ | |
{message:'next week'}, | |
{message:'week after next'} | |
]; | |
var message = ''; | |
// Increment i by 1 while it is less than | |
// [seeYouIn]. Also, loop through the days array | |
// from the current day; when the current day is | |
// greater than days.length, reset to zero and start | |
// from the beginning of the days array again. | |
while( i < seeYouIn ){ | |
i++; | |
if(j < days.length - 1){ | |
j++; | |
}else{ | |
j = 0; | |
weeks++; | |
} | |
} | |
// Return a message if the value of | |
// daysNo isn't 0 | |
if(daysNo !== 0){ | |
// If the debug parameter has been set to true, | |
// return a super-long message | |
if(debug){ | |
message += daysNo; | |
message += ' day'; | |
if(daysNo !== 1){ | |
message += 's'; | |
} | |
message += ' from today (' + days[currDay] + ')'; | |
message += ' is a ' + days[j]; | |
message += ', '; | |
if(weeks < weekPhrases.length){ | |
message += weekPhrases[weeks].message; | |
}else{ | |
message += 'in ' + weeks + ' weeks'; | |
} | |
} | |
// Else, return simply: | |
// [target day], [weeks] | |
else{ | |
message += days[j]; | |
message += ', '; | |
if(weeks < weekPhrases.length){ | |
message += weekPhrases[weeks].message; | |
}else{ | |
message += 'in ' + weeks + ' weeks'; | |
} | |
} | |
return message; | |
} | |
// Else, throw an error | |
else{ | |
throw new Error('Oops! Try a number of days greater than ' + daysNo); | |
} | |
}; | |
/** | |
* Demo | |
**/ | |
console.log( seeYouNextTuesday(1) ); | |
console.log( seeYouNextTuesday(10) ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment