JSFiddle - React, Tailwind, and code Playground

by Cerlin ST

HTML

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
Today's Date: <input type="text" id="datepicker" size="40"><br/>
Current Time: <input type="text" id="ctime" size="40"><br/><br/>

Shipping Date: <input type="text" id="ShippingDate" size="40"><br/>
(Shipping Date = Today's Date + 4 Days [excluding Weekends and Disabled Days])

<br/><br/>
Develiver Date: <input type="text" id="DeliveryDate" size="40"><br/>
(Delivery Date = Shipping Date + 1 Day [excluding Weekends and Disabled Days])

CSS

body
{
    
    font-size: 14px;
    font-family: Arial;
}

JavaScript

/** Days to be disabled as an array */
var disabledSpecificDays = ["12-25-2014", "12-31-2014"];


 
function disableSpecificDaysAndWeekends(date) {
    var m = date.getMonth();
    var d = date.getDate();
    var y = date.getFullYear();
    

 
    for (var i = 0; i < disabledSpecificDays.length; i++) {
        if ($.inArray((m + 1) + '-' + d + '-' + y, disabledSpecificDays) != -1 || new Date() > date) {
            return [false];
        }
    }
 
    var noWeekend = $.datepicker.noWeekends(date);
    return !noWeekend[0] ? noWeekend : [true];

}

function calc(dateInText){
    var dateObj = new Date(dateInText);
    var tmrw = new Date(dateInText);
    var hour = 0;
	tmrw.setHours(0);
	tmrw.setMinutes(0);
	tmrw.setSeconds(0);
	var today = new Date();
    today.setDate(today.getDate() + 1);
	today.setHours(0);
	today.setMinutes(0);
	today.setSeconds(0);
	var today_backup = new Date();
    today_backup.setDate(today_backup.getDate() + 1);
	if (Date.parse(today) == Date.parse(tmrw)) 
        hour = today_backup.getHours();
    if(hour >= 12){
        while(1){
            dateObj.setDate(dateObj.getDate() + 1);                
            tmrw.setDate(tmrw.getDate() + 1);
            if(disableSpecificDaysAndWeekends(tmrw)[0])
                break;
        }
    }
    var shipD = 0;
    while(shipD != 4){
        tmrw.setDate(tmrw.getDate() + 1);
        if(disableSpecificDaysAndWeekends(tmrw)[0]){
            shipD++;
        }
    }
    $('#ShippingDate').val($.datepicker.formatDate('DD, d MM, yy',tmrw));
    var delD = 0;
    while(delD != 5){
        dateObj.setDate(dateObj.getDate() + 1);
        if(disableSpecificDaysAndWeekends(dateObj)[0]){
            delD++;
        }
    }
    $('#DeliveryDate').val($.datepicker.formatDate('DD, d MM, yy',dateObj));
}
 
$('#ctime').keyup(function(){
    calc($('#datepicker').val());
})
 
/** init datepicker */
$(document).ready(function () {
    var $now = new Date();
    $now.setDate($now.getDate() + 1);
   ...