fixed incorrect hour drawn

master
charlestietjen 2023-11-02 09:04:37 -04:00
parent 117a7aa552
commit d2692aa36c
1 changed files with 34 additions and 22 deletions

View File

@ -41,10 +41,10 @@ const minutesByQuarterString = {
const width = g.getWidth();
const height = g.getHeight();
let idTimeout = null;
let drawTimeout;
const getNearestHour = (hours, minutes) => {
if (minutes > 49){
if (minutes > 54) {
return hours + 1;
}
return hours;
@ -53,6 +53,8 @@ const getNearestHour = (hours, minutes) => {
const getApproximatePrefix = (minutes, minutesByQuarter) => {
if (minutes === minutesByQuarter) {
return " exactly";
} else if (minutesByQuarter - minutes < -54) {
return " nearly";
} else if (minutesByQuarter - minutes < -5) {
return " after";
} else if (minutesByQuarter - minutes < 0) {
@ -71,11 +73,22 @@ const getMinutesByQuarter = minutes => {
return 15;
} else if (minutes < 40) {
return 30;
} else {
} else if (minutes < 55) {
return 45;
} else {
return 0;
}
};
// schedule a draw for the next minute
function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = setTimeout(function () {
drawTimeout = undefined;
drawTime();
}, 60000 - (Date.now() % 60000));
}
const drawTime = () => {
//Grab time vars
var date = Date();
@ -97,9 +110,8 @@ const drawTime = () => {
g.drawString(numbers[getNearestHour(hour, minutes)], (width - g.stringWidth(numbers[getNearestHour(hour, minutes)])) / 2, height * 0.45, false);
g.setFont("Vector", 22);
g.drawString(minutesByQuarterString[minutesByQuarter], (width - g.stringWidth(minutesByQuarterString[minutesByQuarter])) / 2, height * 0.7, false);
let d = Date();
let t = d.getSeconds()*1000 + d.getMilliseconds();
idTimeout = setTimeout(drawTime, 60000 - t);
queueDraw();
};
g.clear();