как исправить скрипт изменения цвета элемента по времени?

как исправить этот скрипт, чтобы он можно было расположить элементы с классом day_0, day_1, day_2, day_3, day_4,day_5 и day_6 в случайном порядке,

если элементы расположены по порядку возрастанания, как сейчас, всё работает отлично, а если расположить в случайном порядке, то независимо от названия класса первого элемента, скрипт остсчитывает минуты с начала воскресенья для первого элемента

и если добавить ещё несколько элементов с этими классами на страницу, скрипт вообще начинает отсчытывать минуты непонятно с какого дня. скрипт должен изменять цвет элемента, начиная отсчёт с воскресенья для day_0, с понедельника для day_1, с вторника для day_2, и т.д. для других дней недели, (day_3, day_4,day_5 и day_6) независимо в каком порядке расположены элементы, и сколько этих элементов на странице

<html>
 <head>
  <meta charset="utf-8"><style>
.nik { 
   font: 16px serif;
   color: #666;
   }
   #data,
   .day_0,
   .day_1,
   .day_2,
   .day_3,
   .day_4,
   .day_5,
   .day_6 { 
   font: 25px serif;
   }
   </style>
   </head>
   <body>
<span class="day_0">test</span><br>
<span class="day_1">test</span><br>
<span class="day_2">test</span><br>
<span class="day_3">test</span><br>
<span class="day_4">test</span><br>
<span class="day_5">test</span><br>
<span class="day_6">test</span>

<script>
var elems = document.querySelectorAll('[class^="day"]');
var days = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'];
 
function checkMin(m) {
    var color = '';
    if (m >= 0 && m < 1440) color = '#090';
    else if (m >= 1440 && m < 5510) color = '#f00';
    else if (m >= 5510 && m < 5755) color = '#00f';
    else if (m >= 5755 && m < 10080) color = '#099';
    return color;
}
 
function renewal(d, elems) {
    var thisMin = d.getHours() * 60 + d.getMinutes();
    var index = d.getDay();
    var len = 0;
    for(var i = index; i >= len; i--) {
        elems[i].innerHTML = 'С начала ' + days[i] + ', до текущей минуты, прошло ' + thisMin + ' мин';
        elems[i].style.color = checkMin(thisMin);
        thisMin += 1440;        
        if(i === 0) {
            i = elems.length;
            len = index + 1;
            index = elems.length + 1;
        }
    }
}
 
renewal(new Date(), elems);
</script>
</body>
</html>```


Ответы (0 шт):