UNPKG

react-calendar-full

Version:

A full-featured React calendar component with event scheduling and monthly, weekly, and daily views.

88 lines (87 loc) 2.27 kB
export const daysOfWeek = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', ]; export const daysOfWeekShort = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', ]; export const monthsOfYear = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ]; export function getDateInfo(inputDate) { const dayOfWeek = daysOfWeek[inputDate.getDay()]; const month = monthsOfYear[inputDate.getMonth()]; const dayOfMonth = inputDate.getDate(); const year = inputDate.getFullYear(); const startOfWeek = new Date(inputDate); startOfWeek.setDate(startOfWeek.getDate() - startOfWeek.getDay()); const endOfWeek = new Date(startOfWeek); endOfWeek.setDate(endOfWeek.getDate() + 6); return { dayOfWeek, month, startOfWeek, endOfWeek, dayOfMonth, year, }; } export function moveDate(date, amount) { const nextDate = new Date(date); nextDate.setDate(date.getDate() + amount); return nextDate; } export function moveMonth(date, amount) { const newDate = new Date(date); newDate.setMonth(date.getMonth() + amount); return newDate; } export function startOfWeek(date) { const startOfWeek = new Date(date); startOfWeek.setDate(startOfWeek.getDate() - startOfWeek.getDay()); return startOfWeek; } export function datesOfWeek(date) { let currentDate = startOfWeek(date); const datesOfWeek = []; Array(7) .fill(null) .forEach(() => { datesOfWeek.push(currentDate); currentDate = moveDate(currentDate, 1); }); return datesOfWeek; } export function areDatesEqual(date1, date2) { return (date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate()); } export function formatDateToYYYYMMDD(date) { const year = date.getFullYear(); const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are 0-indexed, so +1 is needed const day = date.getDate().toString().padStart(2, '0'); return `${year}-${month}-${day}`; }