JSFiddle - React, Tailwind, and code Playground

by TrueBlueAussie

JavaScript

// TrueBlueAussie
function getDaysInMonth(m, y) {
    return (m == 2) ? (!((y % 4) || (!(y % 100) && (y % 400))) ? 29 : 28) : (m >> 3 ^ m) & 1 ? 31 : 30;
}

// James
function getDaysInMonth2(m, y) {
   return /8|3|5|10/.test(--m)?30:m==1?(!(y%4)&&y%100)||!(y%400)?29:28:31;
}

// Caleb
function numberOfDays(year, month) {
    var d = new Date(year, month, 0);
    return d.getDate();
}

// GitaarLAB
function daysInMonth(m, y){
  return(m===2?y&3||!(y%25)&&y&15?28:29:30)+(m+(m>>3)&1);
}

for (var y = 1; y <= 4000; y++) {
    for (var m = 1; m <= 12; m++) {
        var d = getDaysInMonth(m, y);
        var e = getDaysInMonth2(m, y);
        var f = numberOfDays(y, m);
        var g = daysInMonth(m, y);
        if (d != e)
        {
            console.log("e: " + e + " - m: " + m + " y: " + y);
        }
        if (d != f)
        {
            console.log("f " + f + " - m: " + m + " y: " + y);
        }
        if (d != g)
        {
            console.log("g " + g + " - m: " + m + " y: " + y);
        }
    }
}
console.log("Done");