计算时间时控制流量

时间:2014-04-23 10:36:24

标签: java time int joptionpane parseint

我正在寻找一些帮助解决一个小问题。 我知道需要做什么我只是不知道如何编写代码。 所以我通过Joptionpane盒子计算时间整数,然后尝试计算总时间。我有代码来做这个,但我遇到的问题是如果我输入12:34:23(hh / mm / ss)为开始时间然后13:44:33它将把总时间输入为01:-10: - 10而不是00:49:50

提前致谢。我可以根据需要发送我的代码,其中有很多代码,人们会告诉我代码的布局,而不是帮助解决实际问题。

这些是我的int输入。没有开始时间和结束时间有3个优先注册,这可能是我遇到麻烦的原因

        String Starth = JOptionPane.showInputDialog(null,
                "Competitor Enter your Start time (hours)" );
                        int  Starthour=Integer.parseInt(Starth);          

        String Startm = JOptionPane.showInputDialog(null,
                "Competitor Enter your Start time (mins)" );
                        int  Startmin=Integer.parseInt(Startm);

        String Starts = JOptionPane.showInputDialog(null,
                "Competitor Enter your Start time (secs)" );
                        int Startsec=Integer.parseInt(Starts);

        String  Endh = JOptionPane.showInputDialog(null,
                "Competitor Enter your End time (hours)" );
                        int  Endhour=Integer.parseInt(Endh);

        String Endm = JOptionPane.showInputDialog(null,
                "Competitor Enter your End Time (mins)" );
                        int Endmin=Integer.parseInt(Endm);    

        String Ends = JOptionPane.showInputDialog(null,
                "Competitor Enter your End Time (secs)" );
                        int Endsec=Integer.parseInt(Ends); 

这是我目前编写的时间代码

  int Timeh = (Endhour - Starthour);    
        int Timem = (Endmin - Startmin);
        int Times = (Endsec - Startsec);  

在代码的最后我使用system.out.print("" + Timeh + Timem + Times)

好吧,我的问题是我的代码不会花费一分钟或一小时的时间,如果分钟或秒的结束时间小于开始时间分钟或秒,它只会打印出一个负数。 即时通过从结束时间开始的时间来解决它。 例如 开始时间: 12:45:45 时间结束: 14时30分三十秒

生产 总时间: 02:-15:-15

不是小时/分钟/秒的单位 对不起,如果我不清楚我的问题

1 个答案:

答案 0 :(得分:0)

你可以使用SimpleDateFormat和Date类。像:

public static void main(String[] args) throws Exception {

        TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
        SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
        Date d1 = format.parse("12:34:23");
        Date d2 = format.parse("13:44:33");
        Date d3 = new Date((long) d2.getTime() - d1.getTime());     

        System.out.println(format.format(d1));
        System.out.println(format.format(d2));
        System.out.println(format.format(d3));
    }