简单的java程序,支持2个时间格式输入并计算时差

时间:2011-10-06 12:04:56

标签: java time simpledateformat time-format date-difference

我想知道如何制作一个简单的程序 用户可以给出2个输入时间(hh:mm)格式---并接收作为输出的经过时间。

程序将运行并允许用户写入时间输入.. 也许是一个通过命令提示符运行的简单程序。

示例,程序运行时:

  1. 请写/输入开始时间!
    (例如:用户将以“hh:mm”格式书写,如; 19.14)

  2. 写入/输入结束时间: (用户将以“hh:mm”格式书写,如; 23.40)

  3. 输出结果如下:“你已经过了......(小时)”

  4. 我一直在谷歌 - 关于时间格式的事情, 甚至使用simpledateformat, 但是当我试图将输入实现到类中时,我只是有些混淆。

    有人可以帮我解决这个问题吗?

    提前致谢。

3 个答案:

答案 0 :(得分:0)

您必须使用Joda-Time API。

答案 1 :(得分:0)

我猜你正在寻找这个......

import java.text.*;

    import java.util.*;


    public class DifferenceBetweenTimes {

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





            Date d1 = new Date( 15, 10, 44);
                   Date d2 = new Date( 15, 30, 44);



            SimpleDateFormat dfm = new SimpleDateFormat ("HH:mm:ss") ;



            System.out.println(dfm.format(d1));

            System.out.println(dfm.format(d2));



           long timeDiff = ( Math.abs( d1.getTime() - d2.getTime()) / 1000 ) / 60;

             System.out.println(timeDiff); 



        }

    }

答案 2 :(得分:0)

我认为你对Date构造函数的调用并没有按照你的想法进行。

日期的三个arg构造函数是:

日期(int year,int month,int date)           已过时。从JDK 1.1版开始,由Calendar.set(年份+ 1900,月份,日期)或GregorianCalendar(年份+ 1900,月份,日期)取代。

试试这个:

日期(int year,int month,int date,int hrs,int min,int sec)           已过时。从JDK版本1.1开始,由Calendar.set(年份+ 1900,月份,日期,小时,分钟,秒)或GregorianCalendar(年份+ 1900,月份,日期,小时,分钟,秒)取代

如果您关心的是经过的时间,则为两者插入相同的日期,然后减去。

试试这个:

日期d1 =新日期(15,10,44);     的System.out.println(d1.toString());

查看推出的日期。

  • 如果这是家庭作业,教师可能会对使用任何日期/时间API类方法感到不满。

import java.util.Date;

公共类SomeOnesHomeWork {

public final int secondsInMinute = 60;
public final int millisecondsPerSecond =1000;
public final int milliPerMinute = secondsInMinute * millisecondsPerSecond;

public int convertMillisecondsToMinutes(long milliseconds){
     return (int) (milliseconds / milliPerMinute);
}

public int differenceInMinutes(long beginTime,long endTime){
    return convertMillisecondsToMinutes(endTime - beginTime);
}

public static void main(String[] argc){

    //Make the dates
    Date d1 = new Date(1999,12,31,23,45,44);
    Date d2 = new Date(1999,12,31,23,59,59);

    //We Could use Static methods, probably should
    SomeOnesHomeWork aHomeWorkObject = new SomeOnesHomeWork();
    System.out.println("The time between two dates in minutes: "
        + aHomeWorkObject.differenceInMinutes(
                d1.getTime(),d2.getTime()));
}

}