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);
...