blumjs
Version:
A UI Package for Angular2
54 lines (46 loc) • 1.85 kB
text/typescript
import { DatePipe } from "@angular/common";
import { Calendar, CalendarBase } from "../calendarbase"
import { DateUnit } from "../dateunit";
import { Row, Cell } from "../elements";
export class Gregorian implements CalendarBase {
weekDayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
weekFirstDay = 0;
monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
minYear = 1970;
maxYear = 2070;
getNameOfMonth(num: number): string{
return this.monthNames[num];
}
dateToString(date: Date, format: string): string {
return new DatePipe('en-en').transform(date, format);
}
dateToDateUnit(date: Date): DateUnit {
let uDate: DateUnit = new DateUnit();
uDate.year = date.getFullYear();
uDate.month = date.getMonth();
uDate.day = date.getDate();
uDate.hour = date.getHours();
uDate.minute = date.getMinutes();
uDate.seconds = date.getSeconds();
return uDate;
}
dateUnitToDate(date: DateUnit): Date {
return new Date(date.year, date.month, date.day, date.hour, date.minute, date.seconds);
}
getMonthLength(date: DateUnit) {
return new Date(date.year, date.month + 1, 0).getDate();
}
weekHeaders() {
let row = new Row();
for (let i = 0; i < 7; i++) {
row.cells[i] = new Cell;
let index = i + this.weekFirstDay;
index -= (i + this.weekFirstDay < 7) ? 0 : 7;
row.cells[i].content = this.weekDayNames[index];
}
return row;
}
dayNumberOfMonthFirst(date: DateUnit): number {
return new Date(date.year, date.month, 1).getDay();
}
}