JSFiddle - React, Tailwind, and code Playground
by lithium182
HTML
<label for="kmsTot">Km celkem: </label>
<input id="kmsTot" type="number">
<br>
<label for="sinceDate">Od: </label>
<input id="sinceDate" type="date">
<br>
<label for="toDate">Do: </label>
<input id="toDate" type="date">
<br>
<label for="excWeekend">Vynechat vikendy? </label>
<input id="excWeekend" type="checkbox">
<br><br>
<input type="button" id="subm" value="Vypis" onclick="loadProperties()">
<div id="output"></div>
JavaScript
var output = document.getElementById("output"),
distanceTotal,
sinceDate = new Date(),
toDate = new Date(),
excludeWeekends;
function countItOut() {
var days = getDays();
output.textContent = days;
}
function loadProperties() {
//najeta vzdalenost
var kmsTot = document.getElementById("kmsTot").value;
if (!kmsTot) {
alert("spatne zadane kilometry!");
return;
}
else
distanceTotal = kmsTot;
var dateSinc = document.getElementById("sinceDate").value;
if (!dateSinc) {
alert("spatne zadane datum Od!");
return;
}
else
sinceDate = dateSinc;
var dateTo = document.getElementById("toDate").value;
if (!dateTo) {
alert("spatne zadane datum Do!");
return;
}
else
toDate = dateTo;
if (sinceDate >= toDate) {
alert("datum Od >= datum Do. \nZkus s tim neco udelat..");
return;
}
var excWE = document.getElementById("excWeekend").checked;
if (!excWE)
excludeWeekends = false;
else
excludeWeekends = true;
countItOut();
}
function getDays(d1, d2) {
var one_day=1000*60*60*24;
var d1_days = parseInt(d1.getTime()/one_day) - 1;
var d2_days = parseInt(d2.getTime()/one_day);
var days = (d2_days - d1_days);
var weeks = (d2_days - d1_days) / 7;
var day1 = d1.getDay();
var day2 = d2.getDay();
if (day1 == 0) {
days--;
} else if (day1 == 6) {
days-=2;
}
if (day2 == 0) {
days-=2;
} else if (day2 == 6) {
days--;
}
days -= parseInt(weeks) * 2;
return days;
}