StartPage/startpage/js/modules/Clock.js

44 lines
1.2 KiB
JavaScript
Raw Normal View History

2025-01-31 20:35:44 +01:00
export class Clock {
constructor(clockElement, greetingElement) {
this.clockElement = clockElement;
this.greetingElement = greetingElement;
this.interval = null;
}
start() {
this.update();
this.interval = setInterval(() => this.update(), 1000);
}
stop() {
if (this.interval) clearInterval(this.interval);
}
update() {
const now = new Date();
this.clockElement.textContent = now.toLocaleTimeString('en-US', {
hour12: false,
hour: '2-digit',
minute: '2-digit'
});
this.updateGreeting();
}
updateGreeting() {
this.greetingElement.textContent = this.getGreeting();
}
getGreeting() {
const hour = new Date().getHours();
let greeting = '';
if (hour >= 5 && hour < 12) greeting = 'Good morning';
else if (hour >= 12 && hour < 18) greeting = 'Good afternoon';
else if (hour >= 18 && hour < 22) greeting = 'Good evening';
else greeting = 'Good night';
const name = localStorage.getItem('username');
return name ? `${greeting}, ${name}` : greeting;
}
}