I have this code here:
public static String AddRemoveDays(String date, int days) throws ParseException
{
SimpleDateFormat k = new SimpleDateFormat("yyyyMMdd");
Date d = k.parse(date);
d = new Date(d.getTime() + days*86400000);
String time = k.format(d);
return time;
}
It take String formed “yyyyMMdd”, and adds int days to it. It should work then the days is negative – then he would substract the days from the date. When it does it’s math, it returns String formated “yyyyMMdd”.
At least that is what it should do. It works for small numbers, but if I try to add (or remove), for example, a year (365 or -365), it returns wierd dates.
What’s the problem?
Should I do it a completley another way?
If you multiply 86400000 by 365 integer cant hold it. Change 86400000 to Long
and it will be fine.