UNPKG

timed-silky

Version:

Timed-Silky 是基于一款基于 TypeScript 的定时任务调度器。得益于 TypeScript,Timed-Silky 可以用符合特定句式的自然语言描述任务的调度规则,提供丝滑的链式调用接口。

65 lines (64 loc) 1.57 kB
class TimePoint { constructor(hour, minute = 0, second = 0) { this.hour = 0; this.minute = 0; this.second = 0; this.hour = hour; this.minute = minute; this.second = second; } static compare(tp1, tp2) { if (tp1.hour < tp2.hour) { return -1; } else if (tp1.hour > tp2.hour) { return 1; } else if (tp1.minute < tp2.minute) { return -1; } else if (tp1.minute > tp2.minute) { return 1; } else if (tp1.second < tp2.second) { return -1; } else if (tp1.second > tp2.second) { return 1; } else { return 0; } } // 减法操作,返回tp1和tp2的差值,以秒为单位 static subtract(tp1, tp2) { return (tp1.hour * 3600 + tp1.minute * 60 + tp1.second - (tp2.hour * 3600 + tp2.minute * 60 + tp2.second)); } } const timePointReg = /\d{1,2}:\d{2}(:\d{2})?/; const day2num = { sunday: 0, monday: 1, tuesday: 2, wednesday: 3, thursday: 4, friday: 5, saturday: 6, }; function dayRange(start, end) { let i = day2num[start]; let j = day2num[end]; let nums = [i, j]; while (true) { i = ((i + 1) % 7); if (i == j) { break; } nums.push(i); } return nums; } export { TimePoint, timePointReg, day2num, dayRange, };