2012-06-25 6 views
1

Я искал и нашел много разных вещей, но ни один из них фактически не помогает получить то, что я ищу. У меня есть два JComboBoxes, в которых пользователь может выбирать разные времена. Например, скажем, 8:00 и 17:30. Теперь я хочу показать разницу между этими моментами, поэтому в этом случае это будет 9.5. Я хочу, чтобы это было в 9,5, а не 9:30. Но мой код делает 9.3, потому что он просто преобразует мою строку в double.разница между двумя временами в java

Любая помощь будет большим

public void displaytotal() { 
    Object sunBobj, sunEobj, mon, tues, wed, thur, fri, sat; 
    double totalD; 

    sunBobj = jComboBox1.getSelectedItem(); 
    sunEobj = jComboBox2.getSelectedItem(); 
    String sunB = sunBobj.toString(); 
    String sunE = sunEobj.toString(); 
    try { 
     double sundB = Double.parseDouble(sunB.replace(":", ".")); 
     double sundE = Double.parseDouble(sunE.replace(":", ".")); 
     totalD = ((sundE - sundB)) * 24; 

     String totalS = "" + totalD; 
     jLabel17.setText(totalS); 
    } catch (NumberFormatException ex) { 
     JOptionPane.showMessageDialog(null, ex); 
    } 
} 
+0

Вы можете выбрать время между несколькими датами (и вы должны беспокоиться о сбережения дневного света время)? Почему вы не используете 'Date'? Вы, похоже, не проверяете, что ваш конец после вашего начала, вы хотите «отрицательную» продолжительность? Вы должны отделять ввод от поля со списком и выводить его на ярлык. –

ответ

5

Вы можете разделить hh:mm строку в часах/минутах:

String[] time = sunB.split(":"); 
int hours = Integer.parseInt(time[0]); 
int minutes = Integer.parseInt(time[1]); 

double decimalTime = hours + minutes/60.0; 
+0

+ 1 Еще один хороший на сегодняшний день;) –

+0

@SiddharthRout Я не знал, что вы следовали за java! – assylias

+1

LOL no Java не подпадает под мою «экспертизу», но я могу это понять в некоторой степени :) –

Смежные вопросы