如何在JAVA中计算用户输入的时间
嘿,伙计们,我需要帮助找出如何计算用户输入的两个特定时间之间的时间差。但是输出必须以小时、分钟和秒作为它们自己的变量进行分割 例如: 启动时间: 时间:15 分钟:50 秒:00 完成时间: 时间:17 分钟:14 秒:23 结果:1小时24分23秒 编辑:这是我到目前为止得到的,计算才是我的问题如何在JAVA中计算用户输入的时间,java,date,datetime,time,duration,Java,Date,Datetime,Time,Duration,嘿,伙计们,我需要帮助找出如何计算用户输入的两个特定时间之间的时间差。但是输出必须以小时、分钟和秒作为它们自己的变量进行分割 例如: 启动时间: 时间:15 分钟:50 秒:00 完成时间: 时间:17 分钟:14 秒:23 结果:1小时24分23秒 编辑:这是我到目前为止得到的,计算才是我的问题 public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.pr
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Starttime:");
System.out.println("---------");
System.out.print("Hour: ");
int HourS = in.nextInt();
System.out.print("Minute: ");
int minuteS = in.nextInt();
System.out.print("Second: ");
int secondS = in.nextInt();
System.out.println("\t");
System.out.println("Finishtime:");
System.out.println("------------");
System.out.print("Hour: ");
int hourF = in.nextInt();
System.out.print("Minute: ");
int minuteF = in.nextInt();
System.out.print("Second: ");
int secondM = in.nextInt();
这就是ms的区别:
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
Date date = format.parse(time);
Date dateB = format.parse(timeB);
long difference = dateB.getTime() - date.getTime();
您可以将其转换为所需格式。您可能需要考虑使用JODA time,它支持更复杂的日期计算方法
public static void main (String [] args) throws Exception
{
SimpleDateFormat format = new SimpleDateFormat ("'Hour: 'HH' Minute: 'mm' Second: 'ss");
BufferedReader reader =
new BufferedReader (
new InputStreamReader (System.in));
System.out.print ("Starting time: ");
long startingTime = format.parse (reader.readLine ()).getTime ();
System.out.print ("Finish time: ");
long finishTime = format.parse (reader.readLine ()).getTime ();
long delta = finishTime - startingTime;
long seconds = delta / 1000 % 60;
long minutes = delta / 60000 % 60;
long hours = delta / 3600000;
System.out.println (
"Result: " + hours + " hour(s) " + minutes +
" minute(s) " + seconds + " second(s)");
}
对于我来说,输出是:
Starting time: Hour: 15 Minute: 50 Second: 00
Finish time: Hour: 17 Minute: 14 Second: 23
Result: 1 hour(s) 24 minute(s) 23 second(s)
使用JodaTime-它做得很好 此简单示例计算两个时间戳之间的差异,并将其打印为可读的:
String a = "00:01:09:340";
String b = "00:02:03:430";
DateTimeFormatter format = DateTimeFormat.forPattern("HH:mm:ss:SSS");
DateTime oldTime = DateTime.parse(a, format);
DateTime newTime = DateTime.parse(b, format);
Interval interval = new Interval(oldTime, newTime);
System.out.println(new StringBuffer("hours: ").append(interval.toDuration().getStandardHours())
.append(" minutes: ").append(interval.toDuration().getStandardMinutes()).append(" seconds: ")
.append(interval.toDuration().getStandardSeconds()).append(" milliseconds: ")
.append(interval.toPeriod().getMillis()).toString());
该示例将为您提供以下输出:
hours: 0 minutes: 0 seconds: 54 milliseconds: 90
我陷入了对用户指定时间的实际计算。我试过做时、分、分、秒,但我很快意识到这不适用于时间。你必须记住,事情是重叠的——每一秒变成负的,比如23-50,你必须从一分钟中取一秒,再加上60秒,同样地,从秒开始计算分钟,不是几个小时。啊,谢谢,这就是我要找的。非常感谢你!