How to print a calendar for a specific month and year in TypeScript

1 Answer

0 votes
function printMonth(year: number, month: number): void {
  const first = new Date(year, month - 1, 1);
  const daysInMonth = new Date(year, month, 0).getDate();
  const monthName = first.toLocaleString("default", { month: "long" });

  console.log(`     ${monthName} ${year}`);
  console.log("Su Mo Tu We Th Fr Sa");

  // Sunday = 0, Monday = 1, ..., Saturday = 6
  const offset = first.getDay();

  let line = "";

  for (let i = 0; i < offset; i++) {
    line += "   ";
  }

  for (let day = 1; day <= daysInMonth; day++) {
    line += day.toString().padStart(2, " ") + " ";
    if ((offset + day) % 7 === 0) {
      console.log(line);
      line = "";
    }
  }

  if (line.length > 0) console.log(line);
}

printMonth(2026, 1);


 
 
/*
run:
 
"     January 2026" 
"Su Mo Tu We Th Fr Sa" 
"             1  2  3 " 
" 4  5  6  7  8  9 10 " 
"11 12 13 14 15 16 17 " 
"18 19 20 21 22 23 24 " 
"25 26 27 28 29 30 31 " 
 
*/

 



answered Jan 19 by avibootz

Related questions

...