Changed around line 93
+ function formatTime(hour, minute = 0) {
+ const period = hour >= 12 ? "pm" : "am";
+ const displayHour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;
+ return {
+ label:
+ hour === 0
+ ? "midnight"
+ : hour === 12
+ ? "noon"
+ : `${displayHour}${period}`,
+ time: `${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`,
+ display: `${displayHour}:${minute.toString().padStart(2, "0")}${period}`,
+ };
+ }
+
Changed around line 119
- label.textContent =
- hour === 0
- ? "midnight"
- : hour === 12
- ? "noon"
- : (hour % 12).toString() + (hour > 11 ? "pm" : "am");
+ label.textContent = formatTime(hour).label;
Changed around line 138
- const time = `${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`;
+ const formatted = formatTime(hour, minute);
- timeSlot.title = time;
- timeSlot.onclick = () => toggleAlarm(time, timeSlot);
+ timeSlot.title = formatted.time;
+ timeSlot.onclick = () =>
+ toggleAlarm(formatted.time, formatted.display, timeSlot);
- minuteLabel.textContent = time;
+ minuteLabel.textContent = formatted.display;
Changed around line 159
- function toggleAlarm(time, slot) {
+ function toggleAlarm(time, display, slot) {
Changed around line 177
+ const [hour, minute] = time.split(":").map(Number);
+ const formatted = formatTime(hour, minute);
- tag.textContent = time;
+ tag.textContent = formatted.display;
- toggleAlarm(time, slot);
+ toggleAlarm(time, formatted.display, slot);