bahnui/front/bahnui-front/src/lib/time.js
2024-12-01 00:38:27 +01:00

55 lines
1.8 KiB
JavaScript

const timecolors = [
{r:147, g:147, b:147, h:0},
{r:156, g:151, b:146, h:1},
{r:166, g:155, b:145, h:2},
{r:175, g:163, b:149, h:3},
{r:201, g:177, b:153, h:4},
{r:235, g:212, b:165, h:5},
{r:249, g:230, b:176, h:6},
{r:250, g:249, b:196, h:7},
{r:248, g:255, b:208, h:8},
{r:237, g:255, b:226, h:9},
{r:239, g:255, b:242, h:10},
{r:231, g:255, b:251, h:11},
{r:220, g:249, b:255, h:12},
{r:220, g:236, b:255, h:13},
{r:224, g:219, b:254, h:14},
{r:243, g:209, b:254, h:15},
{r:247, g:190, b:236, h:16},
{r:243, g:175, b:203, h:17},
{r:234, g:163, b:183, h:18},
{r:226, g:163, b:190, h:19},
{r:206, g:160, b:200, h:20},
{r:178, g:153, b:190, h:21},
{r:159, g:152, b:178, h:22},
{r:146, g:146, b:167, h:23}]
let timefunctions = {
getTimeColor(string){
let date = new Date(string);
let color1;
let color2;
let minutes;
let i = 0;
color1 = timecolors[i];
color2 = timecolors[i+1];
while (color1.h < date.getHours() && i+1 < timecolors.length){
i++;
color1 = timecolors[i];
if (i+2 < timecolors.length) {
color2 = timecolors[i+1];
} else {
color2 = timecolors[0];
}
}
minutes = (date.getHours()-color1.h) * 60 + date.getMinutes();
let maxMinutes = color2.h == 0 ? (24 - color1.h)*60 : (color2.h - color1.h)*60
let r = (color2.r * minutes + color1.r * (maxMinutes-minutes))/maxMinutes;
let g = (color2.g * minutes + color1.g * (maxMinutes-minutes))/maxMinutes;
let b = (color2.r * minutes + color1.b * (maxMinutes-minutes))/maxMinutes;
let color = "rgb("+r+","+g+","+b+")"
return color;
}
}
export default timefunctions;