/
ai_sampletext
/
DiplomWork
Обзор
Документация
Войти
/
ai_sampletext
/
DiplomWork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/react-day-picker/src/components/Table/utils/daysToMonthWeeks.ts
60 строк
1 KB
boolyshareyo
Initial commit
08 июн 2026, 16:00
08 июн 2026, 16:00
6216a29
Код
Авторство
О чём код?
import { addDays, differenceInCalendarDays, endOfISOWeek, endOfWeek, getISOWeek, getWeek, Locale, startOfISOWeek, startOfWeek } from 'date-fns'; import { MonthWeek } from './getMonthWeeks'; /** Return the weeks between two dates. */ export function daysToMonthWeeks( fromDate: Date, toDate: Date, options?: { ISOWeek?: boolean; locale?: Locale; weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6; firstWeekContainsDate?: 1 | 4; } ): MonthWeek[] { const toWeek = options?.ISOWeek ? endOfISOWeek(toDate) : endOfWeek(toDate, options); const fromWeek = options?.ISOWeek ? startOfISOWeek(fromDate) : startOfWeek(fromDate, options); const nOfDays = differenceInCalendarDays(toWeek, fromWeek); const days: Date[] = []; for (let i = 0; i <= nOfDays; i++) { days.push(addDays(fromWeek, i)); } const weeksInMonth = days.reduce((result: MonthWeek[], date) => { const weekNumber = options?.ISOWeek ? getISOWeek(date) : getWeek(date, options); const existingWeek = result.find( (value) => value.weekNumber === weekNumber ); if (existingWeek) { existingWeek.dates.push(date); return result; } result.push({ weekNumber, dates: [date] }); return result; }, []); return weeksInMonth; }