我想知道如何制作一个简单的程序 用户可以给出2个输入时间(hh:mm)格式---并接收作为输出的经过时间。
程序将运行并允许用户写入时间输入.. 也许是一个通过命令提示符运行的简单程序。
示例,程序运行时:
请写/输入开始时间!
(例如:用户将以“hh:mm”格式书写,如; 19.14)
写入/输入结束时间: (用户将以“hh:mm”格式书写,如; 23.40)
输出结果如下:“你已经过了......(小时)”
我一直在谷歌 - 关于时间格式的事情, 甚至使用simpledateformat, 但是当我试图将输入实现到类中时,我只是有些混淆。
有人可以帮我解决这个问题吗?
提前致谢。
答案 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());
查看推出的日期。
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()));
}
}