title: Why does the month argument range from 0 to 11 in JavaScript's Date constructor?
body: <p>When initializing a new <code>Date</code> object in JavaScript using the below call, I found out that the month argument counts starting from zero.</p>
  
  <pre><code>new Date(2010, 3, 1);  // that's the 1st April 2010!
  </code></pre>
  
  <p>Why does the month argument start from 0? On the other hand, the day of the month argument (last one) is a number from 1 to 31. Are there good reasons for this?</p>