UNPKG

blumjs

Version:
54 lines (46 loc) 1.85 kB
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(); } }