JSFiddle - React, Tailwind, and code Playground

by frogggeee McFrogggeee

HTML

<h1>
louies schedule 2022
</h1>
<p id = "time"></p>
<p id = "classHours"></p>

JavaScript

let friday = ["spanish", "PE", "english", "3d design", "computer science", "physics", "geography", "math"];
let monday = ["spanish", "lunch", "english", "computer science", "geography"];
let a = ["spanish", "advo", "lunch", "english", "computer science", "geography"];
let b =  ["PE", "advo", "lunch", "3d design", "physics", "math"];
let currentSched;
let sched = [
	[575, 650, 655, 685, 690, 765, 770, 845, 850, 925],
  [575, 650, 655, 690, 695, 725, 730, 805, 810, 885, 890, 965],
  [575, 650, 655, 690, 695, 725, 730, 805, 810, 885, 890, 965],
  [575, 650, 655, 690, 695, 725, 730, 805, 810, 885, 890, 965],
  [575, 615, 620, 660, 665, 705, 710, 740, 745, 785, 790, 830, 835, 875, 880, 920, 925, 965]
];
function getPeriod(schedule, minutes) {
	let i = 0;
	while (minutes > schedule[i]) {
  	i++;
  }
	return i;
}
function update() {
	let today = new Date();
	let time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
const d = new Date();
let day = d.getDay()-1;
let per = getPeriod(sched[day], today.getHours()*60 + today.getMinutes()) - 1;
  	document.getElementById("time").innerHTML = time + " day: " + day;
if (day == 0) {
  	currentSched = monday;
  } else if (day == 1) {
  	currentSched = b;
  }else if (day == 2) {
  	currentSched = a;
  }else if (day == 3) {
  	currentSched = b;
  } else if (day == 4) {
  	currentSched = friday;
  }
	document.getElementById("classHours").innerHTML = currentSched[Math.floor(per/2) + (per%2)] + " ends in " + (sched[day][per+1] - (today.getHours()*60 + today.getMinutes())) + " minutes. (" + (Math.floor(sched[day][per+1]/60) + ":" + sched[day][per+1]%60) + ") \n"+ (sched[day][per+1] - (today.getHours()*60 + today.getMinutes()) + 5) + " minutes until " + currentSched[Math.floor((per+1)/2) + ((per+1)%2)] + " (starts " + (Math.floor(sched[day][per+1]/60) + ":" + ((sched[day][per+1]%60) + 5)) + ")";  
}
setInterval(update, 1000);