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

1 Answer

0 votes
function printMonth(year, month) {
    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 18 by avibootz

Related questions

...