new Date(new Date().getTime()-25 * 24 * 60 * 60 * 1000) got unexpected date
<p>I would like to generate a list of dates, but found out the date is wrong start from - 25 * 24 * 60 * 60 * 1000     </p>

<p>My local date is 2016-07-17. I got </p>

<pre>
2016-07-17
2016-07-16
2016-07-15
...
2016-06-23
<strong>2016-08-11</strong>
</pre>

<p>I have no idea where the <code>2016-08-11</code> comes from. I broke down the 25 to 24 and -1 as below (<code>xxx</code> and <code>yyy</code>), and then I got the correct date <code>2016-06-22</code>.</p>

<p>Why does <code>xxx</code> work but <code>yyy</code> Doesn't?</p>

<pre><code>Date xxx = new Date(new Date().getTime()-24 * 24 * 60 * 60 * 1000 -1 * 24 * 60 * 60 * 1000);
Date yyy = new Date(new Date().getTime()-25 * 24 * 60 * 60 * 1000);
</code></pre>

<p>Here is my code: date is wrong from i=25</p>

<pre><code>for (int i=0; i&lt;240;i++) {
    Date dt = new Date(new Date().getTime() - i * 24 * 60 * 60 * 1000);
    Log.e(TAG,Global.sdfDateTime19.format(dt));
}
</code></pre>