2016-12-07 6 views
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. 

있고 난 그것을 완전히 잘못 알고있다. 그것은 당신의 날짜와 날짜 형식에서

+0

귀하의 파서가 잘못 .. 'YY/MM/DD : 00 : 오히려 형식을 사용하여 00 : 00' 그리고 당신은'DD/MM은/YY ...'무엇은 diff 대표한다 입력 ? 59 분을 초과 할 수 있습니까? – AxelH

+0

참고로, 당신은 이제 레거시 인 번거로운 오래된 날짜 - 시간 클래스를 java.time 클래스로 대체했습니다. 'Instant','ZonedDateTime','Duration' 클래스를보세요. –

답변

0

봐 너무 오래되지 않았을 수 :

SimpleDateFormat("yy/MM/dd 00:00:00") 

하지만 당신은 다른 형식으로 날짜를 넣어.

"d/MM/yyyy HH:mm:ss"