You don’t have to use Calendar. You can just play with timestamps :
Date d = initDate();//intialize your date to any date Date dateBefore = new Date(d.getTime() - n * 24 * 3600 * 1000 l ); //Subtract n days
DO NOT FORGET TO ADD “l” for long by the end of 1000.
Please consider the below WARNING:
1000*60*60*24 milliseconds to a java date will once in a great while add zero days or two days to the original date in the circumstances of leap seconds, daylight savings time and the like. If you need to be 100% certain only one day is added, this solution is not the one to use.