Calculate weeks from start year

by M Shameer

HTML

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<label>Start Year: <input type="number" id="startYear" value="2020" /></label>
  <button id="calculateWeeks">Calculate Weeks</button>

  <div id="results"></div>

JavaScript

function formatDate(date) {
      // Format as YYYY-MM-DD (in local time)
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      return `${year}-${month}-${day}`;
    }

    $('#calculateWeeks').click(function () {
      const year = parseInt($('#startYear').val());
      
      const startDate = new Date(year, 0, 1, 12);    // Jan 1, 12:00 PM local time
      const endOfYear = new Date(year, 11, 31, 12);  // Dec 31, 12:00 PM

      let current = new Date(startDate);
      let weekCount = 0;
      const results = [];

      while (current <= endOfYear) {
        const weekStart = new Date(current);
        const weekEnd = new Date(current);
        weekEnd.setDate(weekEnd.getDate() + 6);

        if (weekStart <= endOfYear) {
          const safeEnd = weekEnd > endOfYear ? endOfYear : weekEnd;
          results.push(`Week ${++weekCount}: ${formatDate(weekStart)} to ${formatDate(safeEnd)}`);
        }

        current.setDate(current.getDate() + 7);
      }

      $('#results').html(results.join('<br/>'));
    });