@syncfusion/react-calendars
Version:
A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.
29 lines (28 loc) • 882 B
JavaScript
export const addMonths = (actualDate, i) => {
const date = new Date(actualDate.getTime());
const day = date.getDate();
date.setDate(1);
date.setMonth(date.getMonth() + i);
date.setDate(Math.min(day, getMaxDays(date)));
return date;
};
export const addYears = (date, years) => {
const d = new Date(date);
d.setFullYear(d.getFullYear() + years);
return d;
};
export const getWeekNumber = (date) => {
const currentDate = new Date(date).valueOf();
const firstDayOfYear = new Date(date.getFullYear(), 0, 1).valueOf();
return Math.ceil((((currentDate - firstDayOfYear) + 86400000) / 86400000) / 7);
};
const getMaxDays = (d) => {
let date = 28;
const tmpDate = new Date(d);
const month = tmpDate.getMonth();
while (tmpDate.getMonth() === month) {
++date;
tmpDate.setDate(date);
}
return date - 1;
};