From 53a7b31bdcd2e45d4007839e83615151ce3355fa Mon Sep 17 00:00:00 2001 From: Pablo Baleztena Date: Sun, 20 Oct 2024 11:29:51 -0300 Subject: [PATCH] [fabric/core] Add ClockTime class --- packages/fabric/core/time/clock-time.ts | 23 +++++++++++++++++++++++ packages/fabric/core/time/index.ts | 1 + 2 files changed, 24 insertions(+) create mode 100644 packages/fabric/core/time/clock-time.ts diff --git a/packages/fabric/core/time/clock-time.ts b/packages/fabric/core/time/clock-time.ts new file mode 100644 index 0000000..ef4c51e --- /dev/null +++ b/packages/fabric/core/time/clock-time.ts @@ -0,0 +1,23 @@ +/** + * Represents a time of day in hours, minutes, and seconds. + */ +export class ClockTime { + readonly hours: number; + readonly minutes: number; + readonly seconds: number; + + constructor(hours?: number, minutes?: number, seconds?: number) { + this.hours = hours ?? 0; + this.minutes = minutes ?? 0; + this.seconds = seconds ?? 0; + } + + toString() { + return `${this.hours}:${this.minutes}:${this.seconds}`; + } + + static fromString(time: string): ClockTime { + const [hours, minutes, seconds] = time.split(":").map(Number); + return new ClockTime(hours, minutes, seconds); + } +} diff --git a/packages/fabric/core/time/index.ts b/packages/fabric/core/time/index.ts index e567ae5..75efee3 100644 --- a/packages/fabric/core/time/index.ts +++ b/packages/fabric/core/time/index.ts @@ -1,2 +1,3 @@ +export * from "./clock-time.ts"; export * from "./posix-date.ts"; export * from "./time-constants.ts";