do calendar

by russau

CSS

div { font-family: monospace; }
span { color: red; }

JavaScript

doCal(new Date('Jan 12 2000 '));





function doCal(date) {
    
    var monthNames = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];

    var first = new Date(date);
    first.setDate(1);

    $('body').append('<div>'+monthNames[first.getMonth()]+' ' + first.getFullYear() + '</div>');
    $('body').append('<div>SS MM TT WW TT FF SS</div>');
    var nums = $('<div/>');
    $('body').append(nums);
    var d = 1;
    while (d <= 31) {

        if (d == 1) {
            for (var j = 0; j < first.getDay(); j++) {
                nums.append('&nbsp;&nbsp;&nbsp;');
            }
        }
        var dateNum = (new Date(date).getDate() == first.getDate()) ? "<span>" +leadingZeros(first.getDate(), 2)+ "</span>" : leadingZeros(first.getDate(), 2);
        
        nums.append(dateNum  + " ");
        if (first.getDay() == 6) nums.append('<br>');
        
        first.setDate(first.getDate() + 1);
        d++;
    }

}



function leadingZeros(num, totalChars, padWith) {
    num = num + "";
    padWith = (padWith) ? padWith : "0";
    if (num.length < totalChars) {
        while (num.length < totalChars) {
            num = padWith + num;
        }
    } else {}

    if (num.length > totalChars) { //if padWith was a multiple character string and num was overpadded
        num = num.substring((num.length - totalChars), totalChars);
    } else {}

    return num;
}