JSFiddle - React, Tailwind, and code Playground

by kigorw

HTML

<html>
    <head></head>
    <body>
        
        <script>
            // дни недели
            days_labels = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

            // название месяцев
            months_labels = ['January', 'February', 'March', 'April',
                                 'May', 'June', 'July', 'August', 'September',
                                 'October', 'November', 'December'];

            //кол-во дней каждого месяца
            days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

            //текущая дата
            today = new Date();

        //конструктор    
    function Calendar(month, year){
                this.month = (isNaN(month) || month == null) ? today.getMonth() : month;
                this.year = (isNaN(year) || year == null) ? today.getFullYear() : year;
            }

    //отдаст контент контрола
            Calendar.prototype.getHTML = function() {
              return this.html;
            }

    //работа с датами месяца, генерация HTML
            Calendar.prototype.generateHTML = function(){
                // первый день месяца
                 var firstDay = new Date(this.year, this.month, 1);
                 var startingDay = firstDay.getDay();

                 // кол-во дней в этом месяце
                 var monthLength = days_in_month[this.month];

                 // високосный год
                 if (this.month == 1) {
                   if((this.year % 4 == 0 && this.year % 100 != 0) || this.year % 400 == 0){
                     monthLength = 29;
                   }
                 }

                 // заголовок календаря
                 var monthName = months_labels[this.month]
                 var html = '<table class="calendar-table">';
                 html += '<tr><th colspan="7">';
                 html +=  monthName + "&nbsp;" + this.year;
                 html += '</th></tr>';
                 html += '<tr class="calendar-header">';
                 for(var i =...