I am fairly new to JS and I am trying to implement a sort of schedule in my website. I have a schedule of speakers and they change every half hour. I would like to display the name of the speaker at the time that they are speaking.
At the moment I have everything working; however, I know I probably did it the most inefficient way possible. I hard coded 48 if
statements for every top and bottom of the hour.
<html> <body> <h1>Test Java Script</h1> <p id="demo"></p> <script> //setInterval() refreshes the schedule every second setInterval(getSchedule, 1000); function getSchedule(){ var today = new Date() var curHr = today.getHours() var curMin = today.getMinutes() if (curHr == 1 && curMin < 30) { document.getElementById("demo").innerHTML = "John"; } else if (curHr == 1 && curMin >= 30) { document.getElementById("demo").innerHTML = "George"; } else if (curHr == 2 && curMin < 30) { document.getElementById("demo").innerHTML = "Jerry"; } else if (curHr == 2 && curMin >= 30) { document.getElementById("demo").innerHTML = "Bailey"; } else if (curHr == 3 && curMin < 30) { document.getElementById("demo").innerHTML = "Albert"; } else if (curHr == 3 && curMin >= 30) { document.getElementById("demo").innerHTML = "Smith"; } else if (curHr == 4 && curMin < 30) { document.getElementById("demo").innerHTML = "Ralph"; } else if (curHr == 4 && curMin >= 30) { document.getElementById("demo").innerHTML = "Matt"; } else if (curHr == 5 && curMin < 30) { document.getElementById("demo").innerHTML = "Carl"; } else if (curHr == 5 && curMin >= 30) { document.getElementById("demo").innerHTML = "Bob"; } else if (curHr == 6 && curMin < 30) { document.getElementById("demo").innerHTML = "Jared"; } else if (curHr == 6 && curMin >= 30) { document.getElementById("demo").innerHTML = "Ben"; } else if (curHr == 7 && curMin < 30) { document.getElementById("demo").innerHTML = "Alberto"; } else if (curHr == 7 && curMin >= 30) { document.getElementById("demo").innerHTML = "Lopez"; } else if (curHr == 8 && curMin < 30) { document.getElementById("demo").innerHTML = "Anguelo"; } else if (curHr == 8 && curMin >= 30) { document.getElementById("demo").innerHTML = "Tony"; } else if (curHr == 9 && curMin < 30) { document.getElementById("demo").innerHTML = "Pam"; } else if (curHr == 9 && curMin >= 30) { document.getElementById("demo").innerHTML = "John"; } else if (curHr == 10 && curMin < 30) { document.getElementById("demo").innerHTML = "Mark"; } else if (curHr == 10 && curMin >= 30) { document.getElementById("demo").innerHTML = "Luke"; } else if (curHr == 11 && curMin < 30) { document.getElementById("demo").innerHTML = "Paul"; } else if (curHr == 11 && curMin >= 30) { document.getElementById("demo").innerHTML = "Geoff"; } else if (curHr == 12 && curMin < 30) { document.getElementById("demo").innerHTML = "Gavin"; } else if (curHr == 12 && curMin >= 30) { document.getElementById("demo").innerHTML = "Peter"; } else if (curHr == 13 && curMin < 30) { document.getElementById("demo").innerHTML = "Thomas"; } else if (curHr == 13 && curMin >= 30) { document.getElementById("demo").innerHTML = "Suarez"; } else if (curHr == 14 && curMin < 30) { document.getElementById("demo").innerHTML = "Diane"; } else if (curHr == 14 && curMin >= 30) { document.getElementById("demo").innerHTML = "Al"; } else if (curHr == 15 && curMin < 30) { document.getElementById("demo").innerHTML = "Zak"; } else if (curHr == 15 && curMin >= 30) { document.getElementById("demo").innerHTML = "Shane"; } else if (curHr == 16 && curMin < 30) { document.getElementById("demo").innerHTML = "Jack"; } else if (curHr == 16 && curMin >= 30) { document.getElementById("demo").innerHTML = "Jill"; } else if (curHr == 17 && curMin < 30) { document.getElementById("demo").innerHTML = "Jeff"; } else if (curHr == 17 && curMin >= 30) { document.getElementById("demo").innerHTML = "Scott"; } else if (curHr == 18 && curMin < 30) { document.getElementById("demo").innerHTML = "Ramsey"; } else if (curHr == 18 && curMin >= 30) { document.getElementById("demo").innerHTML = "Paul"; } else if (curHr == 19 && curMin < 30) { document.getElementById("demo").innerHTML = "Bob"; } else if (curHr == 19 && curMin >= 30) { document.getElementById("demo").innerHTML = "Jack"; } else if (curHr == 20 && curMin < 30) { document.getElementById("demo").innerHTML = "Matt"; } else if (curHr == 20 && curMin >= 30) { document.getElementById("demo").innerHTML = "Nate"; } else if (curHr == 21 && curMin < 30) { document.getElementById("demo").innerHTML = "Sam"; } else if (curHr == 21 && curMin >= 30) { document.getElementById("demo").innerHTML = "Jenny"; } else if (curHr == 22 && curMin < 30) { document.getElementById("demo").innerHTML = "Michelle"; } else if (curHr == 22 && curMin >= 30) { document.getElementById("demo").innerHTML = "George"; } else if (curHr == 23 && curMin < 30) { document.getElementById("demo").innerHTML = "Bill"; } else if (curHr == 23 && curMin >= 30) { document.getElementById("demo").innerHTML = "Bob"; } else if (curHr == 24 && curMin < 30) { document.getElementById("demo").innerHTML = "Bill"; } else if (curHr == 24 && curMin >= 30) { document.getElementById("demo").innerHTML = "Bob"; } } </script> </body> </html>
I would like to know if there is a way to simplify my code. I was thinking about using an array that has all the names of the speakers; however, how would I iterate through it at the exact times.