Home > other >  How to count number of days after excluding weekends using js
How to count number of days after excluding weekends using js

Time:09-17

I have one query where I need to count number of business days from today to given number,

Like today is 09/14/2021 & given number is 10 I want the last date 09/28/2021 as it is 10th working day from today. I tried below to count day different

    var startDate = new Date();
    var endDate = new Date();
    if(res.defaultLeadTime !== 0){
        endDate.setDate(startDate.getDate()   10);
    }

I am getting 24th Sep, 2021. Now I am counting weekends between two dates

countWeekendDays = ( d0, d1 ) => {
    var ndays = 1   Math.round((d1.getTime()-d0.getTime())/(24*3600*1000));
    var nsaturdays = Math.floor( (d0.getDay() ndays) / 7 );
    return 2*nsaturdays   (d0.getDay()==0) - (d1.getDay()==6);
}

And adding these number of days in the counting gives me another date but I am confuse if there is again weekend in the new date range then what can I do with that days.

So anyone can please guide me for this.

CodePudding user response:

try this :

var startDate = "14-SEPT-2021";
startDate = new Date(startDate.replace(/-/g, "/"));
var endDate = "", noOfDaysToAdd = 10, count = 0;
while(count < noOfDaysToAdd){
    endDate = new Date(startDate.setDate(startDate.getDate()   1));
    if(endDate.getDay() != 0 && endDate.getDay() != 6){
       count  ;
    }
}
alert(endDate);//You can format this date as per your requirement

CodePudding user response:

Another Solution

startDate = new Date("09/17/2021");  
endDate = new Date("10/28/2021");  

 
// Calculate days_difference = (endDate milliseconds - startDate milliseconds) / (1000 * 60 * 60 * 24) to get results in days  
var days_difference = (endDate.getTime() - startDate.getTime()) / 86400000; 
 
// Calculate number of weekends during the whole duration
var weekdends = Math.floor(days_difference/7) * 2 ;

// Adjust weekends depend on start days 
(days_difference%7) startDate.getDay() == 6 ? weekdends =2 : 
  (days_difference%7) startDate.getDay() == 5 ? weekdends =1 :
  weekdends;

// Calculate Working Days 
var workDays = days_difference - weekdends

console.log("Working days",(workDays));

  • Related