0
내가 틀린 것을 찾을 수 없다. 같은 날짜로 완벽하게 작동했다. 그러나 다른 날짜를 입력하면 거대한 계산이 이루어진다. 그게 내가하려고하는 주차장 소프트웨어에 대한. 이시간자바 날짜 빼기 시간 - 두 시간 사이
public void obtenerSalida(String fech, String fech_s,String hora_sal,String serie,String hora_e,
javax.swing.JTextField periodo){
String per;
String dateStart =fech+" "+hora_e;
String dateStop =fech_s+" "+hora_sal;
System.out.println(dateStart);
System.out.println(dateStop);
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd 00:00:00");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff/1000%60;
long diffMinutes = diff/(60 * 1000);
long diffHours = diff/(60 * 60 * 1000);
if((diffMinutes>=1) && (diffMinutes<60)){
periodo.setText(diffMinutes + " minuto(s).");
}
else
if((diffMinutes>=60)&&(diffHours>=1 && diffHours<10)){
per=diffHours+":"+(diffMinutes%60);
periodo.setText(per);
}
System.out.println("Time in seconds: " + diffSeconds + " seconds.");
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");
System.out.println(""+diff);
}
예
I enter this values
fech = 6/12/2016
fech_s = 7/12/2016
hora_e = 1:41:49
hora_s = 8:18:43
사이의 기간을 계산하기 위해 나는이
6/12/2016 1:41:49
7/12/2016 8:18:43
Time in seconds: 54 seconds.
Time in minutes: 525996 minutes.
Time in hours: 8766 hours.
있고 난 그것을 완전히 잘못 알고있다. 그것은 당신의 날짜와 날짜 형식에서
귀하의 파서가 잘못 .. 'YY/MM/DD : 00 : 오히려 형식을 사용하여 00 : 00' 그리고 당신은'DD/MM은/YY ...'무엇은 diff 대표한다 입력 ? 59 분을 초과 할 수 있습니까? – AxelH
참고로, 당신은 이제 레거시 인 번거로운 오래된 날짜 - 시간 클래스를 java.time 클래스로 대체했습니다. 'Instant','ZonedDateTime','Duration' 클래스를보세요. –