Trying to get workweek from date
by Chance Nursey-Bush
JavaScript
console.clear();
function daydiff(first, second) {
return Math.round((second - first) / (1000 * 60 * 60 * 24));
}
function getWorkweekFromDate(dt2) {
//var dt2 = new Date("11/17/2014");
var dt2Year = dt2.getFullYear();
var dt1 = new Date("1/1/" + dt2Year);
//console.log("start of year");
//console.log(dt1);
var numDaysBetween = daydiff(dt1, dt2);
//console.log(numDaysBetween);
var dayOfWeekDt1 = dt1.getDay();
var dayOfWeekDt2 = dt2.getDay();
//console.log(dayOfWeekDt1);
//console.log(dayOfWeekDt2);
var firstDayOfWW1 = new Date(dt1);
firstDayOfWW1.setDate(dt1.getDate() - dayOfWeekDt1);
var firstDayOfCurrent = new Date(dt2);
firstDayOfCurrent.setDate(dt2.getDate() - dayOfWeekDt2);
//console.log(firstDayOfWW1);
//console.log(firstDayOfCurrent);
var daydiffVal = daydiff(firstDayOfWW1, firstDayOfCurrent);
//console.log(daydiffVal);
var workWeek = (daydiffVal / 7) + 1;
return workWeek;
}
var randomDates = [
"6/7/2000"
,"8/16/2000"
,"2/16/2002"
,"3/22/2003"
,"6/21/2003"
,"1/25/2004"
,"9/15/2006"
,"10/15/2006"
,"11/24/2006"
,"4/17/2007"
,"7/27/2007"
,"4/20/2009"
,"3/9/2010"
,"11/11/2012"
,"1/2/2013"
,"10/17/2013"
,"4/15/2014"
,"5/23/2016"
,"11/22/2016"
,"6/10/2017"
];
for(var x = 0; x < randomDates.length; ++x){
console.log("WW" + getWorkweekFromDate(new Date(randomDates[x])) + " - " + randomDates[x]);
}