You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB

import { observable } from "mobx";
export class TimeOfDay {
readonly hour: number;
readonly minute: number;
readonly second: number;
readonly millisecond: number;
constructor(hour: number = 0, minute: number = 0, second: number = 0, millisecond: number = 0) {
this.hour = hour;
this.minute = minute;
this.second = second;
this.millisecond = millisecond;
}
static fromDate(date: Date): TimeOfDay {
return new TimeOfDay(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
}
}
export enum Weekday {
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday,
}
export enum Month {
January = 1,
February = 2,
March = 3,
April = 4,
May = 5,
June = 6,
July = 7,
August = 8,
September = 9,
October = 10,
November = 11,
December = 12,
}
export class DateOfYear {
readonly day: number;
readonly month: Month;
readonly year: number;
constructor(day: number = 0, month: Month = Month.January, year: number = 0) {
this.day = day;
this.month = month;
this.year = year;
}
toString() {
return `${Month[this.month]} ${this.day}, ${this.year}`;
}
}
export class Schedule {
@observable times: TimeOfDay[] = [];
@observable weekdays: Weekday[] = [];
@observable from: DateOfYear | null = null;
@observable to: DateOfYear | null = null;
}