react-native-full-calendars
Version:
React Native Full Calendar (RNFC) is an intuitive and powerful calendar component library designed for React Native.
45 lines (44 loc) • 1.52 kB
JavaScript
;
import { addDays, differenceInCalendarDays, differenceInWeeks, endOfMonth, endOfWeek, format, isAfter, isSameDay, isWithinInterval, startOfMonth, startOfWeek } from 'date-fns';
export const getWeeksInMonth = date => {
const startWeek = startOfWeek(startOfMonth(date));
const endWeek = endOfWeek(endOfMonth(date));
const weeksInMonth = differenceInWeeks(endWeek, startWeek) + 1;
return weeksInMonth;
};
export const isLastWeekOfMonth = date => {
const lastDayOfMonth = endOfMonth(date);
const startOfLastWeek = startOfWeek(lastDayOfMonth);
return isSameDay(date, startOfLastWeek) || isAfter(date, startOfLastWeek);
};
export const isSameStartOfWeek = (date, {
weekStartDay
}) => {
const startOfTheWeek = startOfWeek(date, {
weekStartsOn: weekStartDay
});
return isSameDay(date, startOfTheWeek);
};
export const isSameStartOfMonth = date => {
const startOfTheMonth = startOfMonth(date);
return isSameDay(date, startOfTheMonth);
};
export const getIterableDateBetweenDates = (startDate, endDate) => {
const dates = [];
let currDate = startDate;
while (isWithinInterval(currDate, {
start: startDate,
end: endDate
})) {
dates.push(format(currDate, 'yyyy-MM-dd'));
currDate = addDays(currDate, 1);
}
return dates;
};
export const getDaysRemaining = date => {
if (isLastWeekOfMonth(date)) {
return differenceInCalendarDays(endOfMonth(date), date) + 1;
}
return differenceInCalendarDays(endOfWeek(date), date) + 1;
};
//# sourceMappingURL=date.js.map