Я проверяю некоторый код на работе и натолкнулся на несоответствие в том, как код обрабатывает добавление 1 недели к текущему времени, и мне было интересно, есть ли какая-либо причина, по которой один из них действительно предпочтительнее другого:
Первый - это служебный метод:
public static Date addDaysToDate(final Date date, int noOfDays) {
Date newDate = new Date(date.getTime());
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(newDate);
calendar.add(Calendar.DATE, noOfDays);
newDate.setTime(calendar.getTime().getTime());
return newDate;
}
А второй - простая арифметика в миллисекундах:
long theFuture = System.currentTimeMillis() + (86400 * 7 * 1000);
Date nextWeek = new Date(theFuture);
Второй метод, очевидно, использует «магические числа» для определения недели, но этоможно перевести в константу MILLISECONDS_IN_ONE_WEEK = 86400 * 7 * 1000
Итак, есть ли другие причины, по которым один из этих методов предпочтительнее другого?
В основном я хочу изменить код, чтобы он был единообразным, но я не совсем уверен, какой из них удалить.Поэтому любые аргументы так или иначе были бы полезны.