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";