java中两个时间的差异

java中两个时间的差异,java,date,jcombobox,Java,Date,Jcombobox,我已经搜索并找到了很多不同的东西,但没有一件能真正帮助我找到我想要的东西。我有两个JComboBox,用户可以在其中选择不同的时间。比如说8:00和17:30。现在我希望能够显示这些时间之间的差异,所以在本例中为9.5。我希望是9点5分,而不是9点30分。但是我的代码是9.3,因为它只是将我的字符串转换成一个double 任何帮助都会很好 public void displaytotal() { Object sunBobj, sunEobj, mon, tues, wed, thur,

我已经搜索并找到了很多不同的东西,但没有一件能真正帮助我找到我想要的东西。我有两个JComboBox,用户可以在其中选择不同的时间。比如说8:00和17:30。现在我希望能够显示这些时间之间的差异,所以在本例中为9.5。我希望是9点5分,而不是9点30分。但是我的代码是9.3,因为它只是将我的字符串转换成一个double

任何帮助都会很好

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);
    }
}

您可以在小时/分钟内拆分
hh:mm
字符串:

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

double decimalTime = hours + minutes / 60.0;

您可以在小时/分钟内拆分
hh:mm
字符串:

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

double decimalTime = hours + minutes / 60.0;

你能选择多个日期的时间吗(你需要担心夏令时吗)?为什么不使用
Date
s?你似乎没有确认你的结束是在你的开始之后,你想要一个“消极”的持续时间吗?您应该将输入与组合框分开,并将输出与标签分开。您可以选择多个日期的时间吗(您是否需要担心夏令时)?为什么不使用
Date
s?你似乎没有确认你的结束是在你的开始之后,你想要一个“消极”的持续时间吗?您应该将输入与组合框分开,并将输出与标签分开。@SiddharthRout我不知道您也使用java!哈哈,没有Java不属于我的
专长范围,但我在某种程度上可以理解:)@SiddharthRout我不知道你也学过Java!LOL没有Java不属于我的
专业知识范围
,但我可以在某种程度上理解它:)