import { format, isSameDay, isSameMonth, parseISO } from 'date-fns'; export const months: readonly string[] = Object.freeze([ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ]); export const weeks: readonly string[] = Object.freeze([ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab' ]); //obtêm a quantidade de dias do mês export const getCountDaysOfMonth = (data: Date) => { const numAno = data.getFullYear(); const numMes = data.getMonth() + 1; let numDias = new Date(numAno, numMes, 0).getDate(); numDias = numDias + 7; return numDias; }; //Obtêm o dia da semana do primeiro dia do mês export const getDayWeekOfFirstDayOfMonth = (data: Date) => new Date(data.getFullYear(), data.getMonth(), 1) .getDay(); //Obtêm o dia da semana do ultimo dia do mês export const getDayWeekOfLastDayOfMonth = (data: Date) => new Date(data.getFullYear(), data.getMonth(), getCountDaysOfMonth(data)) .getDay(); //Obtêm o mês e ano export const getMonthAndYear = (date: Date) => format(date, 'MM/yyyy'); export const getMonthAndYearText = (date: Date) => { const month = date.getMonth(); const year = date.getFullYear(); return months[month] + ', ' + year; }; export const getMonthText = (date: Date) => { const month = date.getMonth(); return months[month]; }; export const getYearText = (date: Date) => { const year = date.getFullYear(); return year; }; export const getFerstDay = (date: Date) => { const month = date.getMonth(); const year = date.getFullYear(); return months[month] + ', ' + year; }; export const formatDate = (date: string | Date) => { const dt = date instanceof Date ? date : parseISO(date); return format(dt, 'dd/MM/yyyy'); }; export const isSameDate = (date1: Date, date2: Date) => isSameDay(date1, date2); export const isSameMonthAndYear = (date1: Date, date2: Date) => isSameMonth(date1, date2); export const toDate = (dataString: string) => new Date(dataString);