Для тех, кто предпочитает реализацию математики напрямую, вот решение о том, как добавить дни в существующий объект даты без использования Календаря или каких-либо устаревших функций:
private Date addDays(Date dateIn, int numDays)
{
long milisPerDay = 86400000;
// convert the dateIn to milliseconds
long dateInMilis = dateIn.getTime();
// add numDays to the date
dateInMilis = dateInMilis + (numDays * milisPerDay);
return new Date(dateInMilis);
}
Вот как получить текущий год в виде строки (очень полезно для уведомлений об авторских правах)
long time = System.currentTimeMillis();
long milisPerYear = new BigInteger("31536000000").longValue();
String currentYear = String.valueOf((int) Math.floor(time / milisPerYear) + 1970);
Поиск констант, таких как количество миллисекунд в дне, году и т. Д., Очень прост в Google. Самое сложное - сложить месяцы, поскольку количество миллисекунд в месяце будет зависеть от месяца. Если есть какая-либо потребность в этом, я был бы рад написать функцию и опубликовать ее здесь, чтобы сложить и вычесть месяцы.