JSFiddle - React, Tailwind, and code Playground
JavaScript
const moment = require('moment');
// moment settings
moment.locale('ru');
class Calendar{
constructor(){
this.now = moment();
this.format = 'DD, MMMM, YYYY'
this.firstDayOfMonth = this.now.clone().startOf('month');
this.lastDayOfMonth = this.now.clone().endOf('month');
this.firstDayOfFirstWeek = this.firstDayOfMonth.clone().startOf('week');
this.lastDayOfFirstWeek = this.firstDayOfMonth.clone().endOf('week');
this.firstDayOfLastWeek = this.lastDayOfMonth.clone().startOf('week');
this.lastDayOfLastWeek = this.lastDayOfMonth.clone().endOf('week');
}
generateCalendar(){
let cursor = this.firstDayOfFirstWeek.clone();
while(!cursor.isSame(this.lastDayOfLastWeek)){
console.log(cursor.format(this.format),
this.lastDayOfLastWeek.format(this.format),
cursor.isSame(this.lastDayOfLastWeek)
);
cursor.add(1, 'days');
}
}
}
calendar = new Calendar();
calendar.generateCalendar();