Sto rivedendo un certo codice sul posto di lavoro e mi sono imbattuto un'incoerenza nel modo in cui il codice gestisce l'aggiunta di 1 settimana a l'ora corrente e si chiedeva se ci fosse alcuna ragione per cui si dovrebbe davvero essere preferito rispetto all'altro:Aggiungi 1 settimana a una data, quale è la via preferita?
La prima era un metodo di utilità:
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;
}
E la seconda utilizzata semplice aritmetica millisecondo:
long theFuture = System.currentTimeMillis() + (86400 * 7 * 1000);
Date nextWeek = new Date(theFuture);
il secondo metodo utilizza ovviamente 'numeri magici' per definire una settimana, ma questo potrebbe essere mossa d a una costante MILLISECONDS_IN_ONE_WEEK = 86400 * 7 * 1000
Quindi, a parte questo, c'è qualche ragione per cui uno di questi metodi dovrebbe essere preferito rispetto all'altro?
Fondamentalmente voglio cambiare il codice per essere coerente in tutto, ma non sono del tutto sicuro quale rimuovere. Quindi qualsiasi argomento in un modo o nell'altro sarebbe utile.
* tosse * Usa Joda-Time. 'DateTime newDate = date.plusWeeks (1); ' – ColinD
Il codice viene eseguito su un dispositivo Windows Mobile utilizzando una JVM basata principalmente su Java 1.2. Joda viene testato solo contro 1.4 e versioni successive, quindi non voglio aggiungere una libreria di terze parti che non è stata progettata per funzionare sulla piattaforma che sto usando. Ma grazie per il suggerimento. – DaveJohnston