Files
2022-11-08 21:44:49 +01:00

39 lines
897 B
TypeScript

export class Clock {
private _hour = 0;
private _minute = 0;
private setTime(hour: number, minute: number = 0): void {
this._minute = minute % 60;
if (this._minute < 0) {
this._minute = 60 + this._minute;
}
this._hour = (hour + Math.floor(minute / 60)) % 24;
if (this._hour < 0) {
this._hour = (this._hour % 24) + 24;
}
}
constructor(hour: number, minute?: number) {
this.setTime(hour, minute);
}
public toString(): string {
return `${String(this._hour).padStart(2, "0")}:${String(
this._minute
).padStart(2, "0")}`;
}
public plus(minutes: number): Clock {
return new Clock(this._hour, this._minute + minutes);
}
public minus(minutes: number): Clock {
return new Clock(this._hour, this._minute - minutes);
}
public equals(other: Clock): boolean {
return this.toString() === other.toString();
}
}