From 04322894b514f7dca9c9a4ba1ec4fcc6deb6c587 Mon Sep 17 00:00:00 2001 From: Darius Date: Mon, 17 Nov 2025 23:47:27 +0100 Subject: [PATCH] Generic Commit; Most likely a fix or small feature --- src/timespan.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/timespan.ts diff --git a/src/timespan.ts b/src/timespan.ts new file mode 100644 index 0000000..be4515e --- /dev/null +++ b/src/timespan.ts @@ -0,0 +1,32 @@ +export class TimeSpan { + private start: { hours: number; minutes: number }; + private end: { hours: number; minutes: number }; + + constructor(timeSpanStr: string) { + const [startStr, endStr] = timeSpanStr.split("-"); + this.start = this.parseTime(startStr); + this.end = this.parseTime(endStr); + } + + private parseTime(timeStr: string) { + const [hours, minutes] = timeStr.split(":").map(Number); + return { hours, minutes }; + } + + contains(timestamp: number = Date.now()): boolean { + const date = new Date(timestamp); + + const hours = date.getHours(); + const minutes = date.getMinutes(); + const currentMinutes = hours * 60 + minutes; + + const startMinutes = this.start.hours * 60 + this.start.minutes; + const endMinutes = this.end.hours * 60 + this.end.minutes; + + if (startMinutes > endMinutes) { + return currentMinutes >= startMinutes || currentMinutes < endMinutes; + } else { + return currentMinutes >= startMinutes && currentMinutes < endMinutes; + } + } +}