UNPKG

horas

Version:

A simple CLI app to manage local daily tasks notation files.

41 lines (40 loc) 1.25 kB
export default class Time { #minutes = 0; #occultMinutesWhenZero = false; #sign = ''; constructor(initialMinutes = 0, occultMinutesWhenZero = false, sign = ' ') { this.#minutes = initialMinutes; this.#occultMinutesWhenZero = occultMinutesWhenZero; this.#sign = sign; } isEmpty() { return this.#minutes === 0; } equals(time) { return this.#minutes === time.#minutes; } subtract(time, occultMinutesWhenZero = false) { return new Time(Math.abs(this.#minutes - time.#minutes), occultMinutesWhenZero, this.#minutes <= time.#minutes ? '+' : '-'); } addHours(hours) { this.#minutes += hours * 60; } addMinutes(minutes) { this.#minutes += minutes; } addTime(time) { this.#minutes += time.#minutes; } get minutes() { return this.#minutes % 60; } get hours() { return Math.floor(this.#minutes / 60); } toString(sign) { sign = sign || this.#sign; const hourText = sign + String(this.hours); const minuteText = String(this.minutes).padStart(2, '0'); return hourText + 'h' + (this.#occultMinutesWhenZero && this.minutes === 0 ? '' : minuteText); } }