2

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

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

例如,当程序运行时:

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

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

  3. 输出将类似于:“您已经过去了 hh(小时)”

我一直在用谷歌搜索时间格式的东西,甚至使用过简单的日期格式,但在尝试将输入实现到类或其他任何东西时,我有点搞混了。

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

提前致谢。

4

3 回答 3

0

我不认为您对 Date 构造函数的调用正在执行您认为的操作。

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

日期(整数年,整数月,整数日期)已弃用。从 JDK 版本 1.1 开始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代。

试试这个:

Date(int year, int month, int date, int hrs, int min, int sec) 已弃用。从 JDK 1.1 版开始,替换为 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec)

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

尝试这个:

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

看看是什么日​​期。

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

导入 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()));
}

}

于 2011-10-06T13:21:05.980 回答
0

您必须使用Joda-Time API。

于 2011-10-06T12:10:49.433 回答
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); 



        }

    }
于 2011-10-06T12:11:56.720 回答