title: Java TimeUnit.MILLISECONDS.toDays() gives wrong result
body: <p>I'm trying to calculate the difference between two days in amount of days. For some reason comparing 01-03-2013 and 01-04-2013 gives the result 30, as does comparing 01-03-2013 and 31-03-2013</p>
  
  <pre><code>Calendar cal = Calendar.getInstance();
  cal.clear();
  
  cal.set(2013, Calendar.MARCH, 1);
  Date start = cal.getTime();
  
  cal.set(2013, Calendar.APRIL, 1);
  Date end = cal.getTime();
  
  long days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
  System.out.println("!!! Amount of days : " + String.valueOf(days));
  
  &gt;&gt; 30
  
  cal.set(2013, Calendar.MARCH, 1);
  start = cal.getTime();
  
  cal.set(2013, Calendar.MARCH, 31);
  end = cal.getTime();
  
  days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
  System.out.println("!!! Amount of days : " + String.valueOf(days));
  
  &gt;&gt; 30
  </code></pre>
  
  <p>Why is this?</p>