Initial commit of calendar service

This commit is contained in:
2024-01-10 12:54:30 -05:00
parent 533cf84433
commit 2d779061cd
12 changed files with 3644 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import { HolidaysTypes } from 'date-holidays';
import { DateTime, Interval } from 'luxon';
export class Event {
name: string;
date: DateTime;
type: HolidaysTypes.HolidayType;
durationUntil: {
days: number;
hours: number;
minutes: number;
seconds: number;
} | null;
constructor(holiday: HolidaysTypes.Holiday, timezone: string) {
this.name = holiday.name;
this.date = DateTime.fromFormat(holiday.date, 'yyyy-MM-dd HH:mm:ss', { zone: timezone });
this.type = holiday.type;
const duration = Interval.fromDateTimes(DateTime.now(), this.date).toDuration(['days', 'hours', 'minutes', 'seconds']);
this.durationUntil = !duration.isValid ? null : {
days: duration.days,
hours: duration.hours,
minutes: duration.minutes,
seconds: Math.round(duration.seconds)
};
}
}