30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.TimeSpan = void 0;
|
|
class TimeSpan {
|
|
constructor(timeSpanStr) {
|
|
const [startStr, endStr] = timeSpanStr.split("-");
|
|
this.start = this.parseTime(startStr);
|
|
this.end = this.parseTime(endStr);
|
|
}
|
|
parseTime(timeStr) {
|
|
const [hours, minutes] = timeStr.split(":").map(Number);
|
|
return { hours, minutes };
|
|
}
|
|
contains(timestamp = Date.now()) {
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
exports.TimeSpan = TimeSpan;
|