import { createDate } from './date-setters'; export function getHours(date: Date, isUTC = false): number { return isUTC ? date.getUTCHours() : date.getHours(); } export function getMinutes(date: Date, isUTC = false): number { return isUTC ? date.getUTCMinutes() : date.getMinutes(); } export function getSeconds(date: Date, isUTC = false): number { return isUTC ? date.getUTCSeconds() : date.getSeconds(); } export function getDayOfWeek(date: Date, isUTC = false): number { return isUTC ? date.getUTCDay() : date.getDay(); } export function getDate(date: Date, isUTC = false): number { return isUTC ? date.getUTCDate() : date.getDate(); } export function getMonth(date: Date, isUTC = false): number { return isUTC ? date.getUTCMonth() : date.getMonth(); } export function getFullYear(date: Date, isUTC = false): number { return isUTC ? date.getUTCFullYear() : date.getFullYear(); } export function getFirstDayOfMonth(date: Date): Date { return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds()); } export function daysInMonth(date: Date): number { return _daysInMonth(date.getFullYear(), date.getMonth()); } export function _daysInMonth(year: number, month: number): number { return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); } export function isFirstDayOfWeek(date: Date, firstDayOfWeek: number): boolean { return date.getDay() === firstDayOfWeek; } export function isSameMonth(date1: Date, date2: Date) { if (!date1 || !date2) {return false; } return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2); } export function isSameYear(date1: Date, date2: Date) { if (!date1 || !date2) {return false; } return getFullYear(date1) === getFullYear(date2); } export function isSameDay(date1: Date, date2: Date): boolean { if (!date1 || !date2) { return false; } return isSameYear(date1, date2) && isSameMonth(date1, date2) && getDate(date1) === getDate(date2); }