Pessoal alguém pode me explicar porque existe diferença entre os resultados abaixo?
public class Joda {
/**
* @param args
*/
public static void main(String[] args) {
DateTime d1 = new DateTime().plusDays(1);
DateTime d2 = new DateTime();
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d1.toDate()));
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d2.toDate()));
long milisecs = (d1.toDate().getTime() - d2.toDate().getTime());
long segundos = milisecs /1000;
long minutos = segundos / 60;
long horas = minutos / 60;
long dias = horas / 24;
System.out.println( "segundos: " + segundos );
System.out.println( "minutos: " + minutos );
System.out.println( "horas: " + horas );
System.out.println( "dias: " + dias );
comCalendar();
}
private static void comCalendar() {
Calendar data1 = Calendar.getInstance();
data1.add(Calendar.DAY_OF_WEEK, 1);
Calendar data2 = Calendar.getInstance();
DateTime d1 = new DateTime(data1.getTimeInMillis());
DateTime d2 = new DateTime(data2.getTimeInMillis());
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d1.toDate()));
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d2.toDate()));
long milisecs = (d1.toDate().getTime() - d2.toDate().getTime());
long segundos = milisecs /1000;
long minutos = segundos / 60;
long horas = minutos / 60;
long dias = horas / 24;
System.out.println( "segundos: " + segundos );
System.out.println( "minutos: " + minutos );
System.out.println( "horas: " + horas );
System.out.println( "dias: " + dias );
}
}
Resultado:
17/07/2010 13:43:21
16/07/2010 13:43:21
segundos: 86399
minutos: 1439
horas: 23
dias: 0
17/07/2010 13:43:21
16/07/2010 13:43:21
segundos: 86400
minutos: 1440
horas: 24
dias: 1