window-calander
Version:
```js import WindowCalander from 'window-calander'; const WindowCalander = require("window-calander");
66 lines (56 loc) • 1.64 kB
text/typescript
export interface WindowCalanderDate {
year: number;
month: number;
date: number;
day: number;
isThisMonth: boolean;
}
export type WindowCalanderLine = WindowCalanderDate[];
export type WindowCalander = WindowCalanderLine[];
function getWindowCalander(
settingYear: number,
settingMonth: number
): WindowCalander {
const dateObj = new Date();
const getYear = (): number => dateObj.getFullYear();
const getMonth = (): number => dateObj.getMonth() + 1;
const getDate = (): number => dateObj.getDate();
const getDay = (): number => dateObj.getDay();
const setDate = (date: number): void => {
dateObj.setDate(date);
};
const nextDate = (): void => {
dateObj.setDate(getDate() + 1);
};
const prevDate = (): void => {
dateObj.setDate(getDate() - 1);
};
dateObj.setMonth(settingMonth - 1);
dateObj.setFullYear(settingYear);
setDate(1);
const dayIndex: number = getDay();
for (let i = 0; i < dayIndex; i++) {
prevDate();
}
const calanderLineArr: WindowCalander = [];
for (let i = 0; i < 6; i++) {
const dateArr: WindowCalanderLine = [];
for (let j = 0; j < 7; j++) {
const year: number = getYear();
const month: number = getMonth();
const nowDate: number = getDate();
const dayIndex: number = getDay();
dateArr.push({
year,
month,
date: nowDate,
day: dayIndex,
isThisMonth: month === settingMonth,
});
nextDate();
}
calanderLineArr.push(dateArr);
}
return calanderLineArr;
}
export default getWindowCalander;