I have problem with java Date
type. Why in my code days
and days1
both equall 88?
GregorianCalendar dateNow = new GregorianCalendar(2014,03,31);
GregorianCalendar dateFirstDay = new GregorianCalendar(2014,01,01);
long diffInMillies = dateNow. getTimeInMillis() - dateFirstDay. getTimeInMillis();
int days = (int) (diffInMillies / (1000*60*60*24));
GregorianCalendar dateNow1 = new GregorianCalendar(2014,04,01);
GregorianCalendar dateFirstDay1 = new GregorianCalendar(2014,01,01);
long diffInMillies1 = dateNow1. getTimeInMillis() - dateFirstDay1. getTimeInMillis();
int days1 = (int) (diffInMillies1 / (1000*60*60*24));
The reason is that you are giving dateNow a month of 03, which means it is taking it as April, since it starts the month from 0. 0=Jan;1=Feb etc. Now, you are giving day of month as 31. Since April only has 30 days, it is incrementing and treating the date as 1 May, which is same as your dateNow1.
Hence the same values.
Hope this helps.