I need to minus 365 days in a given date (givenDate)-
Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.DATE, -365);
Am I right?
I need to minus 365 days in a given date (givenDate)-
Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.DATE, -365);
Am I right?
Calendar.DAY_OF_YEAR
is the proper way to subtract days
You can also subtract a year (taking in to account leap years) by using
Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.YEAR, -1);
I don't think it'll make a different, but I would use Calendar.DAY_OF_YEAR as the field.
That is the correct way to subtract days.
Note that 365 days does not always equal one year because of leap days. calendar.add(Calendar.YEAR, -1)
would subtract one year correctly.
You also may want to use Joda Time-library instead of java.util.Date and java.util.Calendar. Joda Time is much nices API for handling times and dates.
If you are trying to strictly subtract 365 days, then yeah, that'd do it. However, if you are trying years backward, that might not work due to leap years.