https://drive.google.com/drive/my-drive это простой календарь, который можно использовать для записи на прием. я пробовал многие решения, такие как циклы и условные операторы, но я не могу получить правильный вывод, основная проблема заключается в том, что когда диапазон калибровки и диапазон строки происходят в то время, когда ячейки плавают вне таблицы, общее число плавающих ячеек равно ( (enddate - startdate) * (endtime - starttime) + (enddate - startdate) + (endtime - starttime)) эта формула.
var startdate= "";
var enddate= "";
var delcell = ((enddate - startdate) * (endtime - starttime) + (enddate - startdate) + (endtime - starttime)/2 );
var starttime= "";
var endtime= "";
var label = "";
function datasubmit(){
document.getElementById('s1');
startdate = document.getElementById('startd').value;
enddate = document.getElementById('endd').value;
starttime = document.getElementById('startt').value;
endtime = document.getElementById('endt').value;
label = document.getElementById('label').value;
document.getElementById('table').innerHTML = ''
calender()
}
function calender(){
for (var j = 0; j <= 24; j++) {
let row = table.insertRow(j);
for (var i = 1; i <= 30; i++) {
if(j==0){
var newcell = row.insertCell(-1);
newcell.innerHTML = i + 'Jan';
}else{
var newcell = row.insertCell(-1);
newcell.innerHTML = '';
if(j==starttime && i==startdate ){
newcell.setAttribute('rowspan', (endtime-starttime)+1);
newcell.setAttribute('colspan', (enddate-startdate)+1);
newcell.innerHTML =label;
}
}
}
var newcell = row.insertCell(0);
newcell.innerHTML = j + 'HR';
}
}
calender()
<!DOCTYPE html>
<html>
<head>
<title>calender in js</title>
<style type="text/css">
table td{
border: 1px solid grey;
padding: 4px;
}
</style>
</head>
<body>
<form autocomplete="off" id="s1">
start date <input type="text" name="startd" id="startd">
end date <input type="text" name="endd" id="endd"><br><br>
start time <input type="text" name="startt" id="startt">
end time <input type="text" name="endt" id="endt"><br><br>
inter name <input type="text" name="label" id="label">
<button type="button" name="submit" id="submit" onclick="datasubmit();">Submit</button><br><br>
</form>
<table id="table" style="border:2px solid black">
</table>
</body>
</html>
, так как я вычислил плавающие ячейки ((enddate - начальная дата) * (конечное время - начальное время) + (конечная дата - начальная дата) + (конечное время - начальное время))