title: as.Date behavoir for large numeric arguments
body: <p>I am trying to understand the way R dates works.  </p>
  
  <p>In open source R, one day after 31/12/9999, the character version of the date rolls over to 01/01/0000.  </p>
  
  <pre><code>max.date &lt;- as.numeric(as.Date("9999-12-31", origin = '1970-01-01', format = '%Y-%m-%d'))
  max.date
  as.Date(max.date + 1, origin = '1970-01-01')
  as.numeric(as.Date(max.date + 1, origin = '1970-01-01'))
  </code></pre>
  
  <p>If you try to enter a date one day after 31/12/9999 as a string, you get a missing value.</p>
  
  <pre><code>as.Date("10000-01-01", origin = '1970-01-01', format = '%Y-%m-%d')
  </code></pre>
  
  <p>As you increment a numeric argument to <code>as.Date</code> after 31/12/9999, the years just roll over like an odometer until you reach 2^32 - 1.</p>
  
  <p>My question is why do the year roll over and is there a way to control this?</p>