|
|
@ -1,5 +1,5 @@ |
|
|
|
import type { TimeInterval } from "../models/common"; |
|
|
|
import { addDays, addMonths, addYears, formatDate, startOfDay, startOfMonth, startOfWeek, startOfYear } from "./date"; |
|
|
|
import { addDays, addMonths, addYears, endOfYear, formatDate, startOfDay, startOfMonth, startOfWeek, startOfYear } from "./date"; |
|
|
|
|
|
|
|
export default function parseInterval(s: string, date: Date): TimeInterval<Date> { |
|
|
|
const [verb, args] = s.split(";")[0].split(":") |
|
|
@ -114,6 +114,15 @@ export function datesOf(interval: TimeInterval<string | Date>): TimeInterval<str |
|
|
|
return {min: formatDate(interval.min), max: formatDate(interval.max)} |
|
|
|
} |
|
|
|
|
|
|
|
export function scheduledDatesOf(interval: TimeInterval<string | Date>): TimeInterval<string> { |
|
|
|
const res = datesOf(interval); |
|
|
|
if (res != null) { |
|
|
|
res.max = formatDate(endOfYear(addYears(new Date(interval.max), 2))) |
|
|
|
} |
|
|
|
|
|
|
|
return res; |
|
|
|
} |
|
|
|
|
|
|
|
function capitalize(s: string) { |
|
|
|
return `${s.charAt(0).toLocaleUpperCase()}${s.slice(1)}` |
|
|
|
} |
|
|
|