问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

JAVA新手,计算两个时间差

提问网友 发布时间:2022-04-21 05:48
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
3个回答
热心网友 回答时间:2022-06-18 07:49

  我的思路:在java里面任何完整的日期都可以转化成毫秒,

然后利用毫秒之差就可以算出这2个日期的差额,

但题目里面没有天,只有时分秒,

所以我们可以分别在时分秒加上年月日,使之组成一个完整的日期就可以进行计算了。

以下是我的代码,可以直接拷贝在Eclipse里运行。

p.s:你的代码我看了,没有什么问题,可能是在网站里面运行,你不应该有main函数之类的东西吧,应该用servlet啊。


package com.testtimeinterval;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestTimeInterval {

public static void main(String[] args) {
try {
// 得到系统输入的内容
System.out.println("请输入入睡时刻,用:隔开:");
InputStreamReader isr_begin = new InputStreamReader(System.in);
BufferedReader br_begin = new BufferedReader(isr_begin);
String beginInputValue = br_begin.readLine();
System.out.println("入睡时间为:" + beginInputValue);

System.out.println("请输入起床时刻,用:隔开:");
InputStreamReader isr_end = new InputStreamReader(System.in);
BufferedReader br_end = new BufferedReader(isr_end);
String wakeupInputValue = br_end.readLine();
System.out.println("起床时间为:" + wakeupInputValue);

// 1.将入睡时间拼接成一个完整的日期
String sleepTimeStr = getCurrDay() + " " + beginInputValue;
// 1.1转换成日期格式
Date sleepTime = convertStrToDate(sleepTimeStr);

// 2.将起床时间拼接成一个完整的日期
String wakeupTimeStr = getCurrDay() + " " + wakeupInputValue;
// 2.1转换成日期格式
Date wakeupTime = convertStrToDate(wakeupTimeStr);

// 计算2个日期之差
long interval = wakeupTime.getTime() - sleepTime.getTime();

System.out.println("相差的毫秒是:" + interval);

// 3.将long转化成时分秒
// 3.1先得到时
int hour = new Long(interval / (1000 * 60 * 60)).intValue();

// 3.2再得到分
int tempLeft_minute = new Long(interval % (1000 * 60 * 60))
.intValue();
// 3.2.1 得到分
int minute = new Long(tempLeft_minute / (1000 * 60)).intValue();

// 4.1 得到秒
int tempLeft_second = new Long(tempLeft_minute % (1000 * 60))
.intValue();
// 4.2.1 得到分
int second = new Long(tempLeft_second / 1000).intValue();

System.out.println("睡觉的时间为" + hour + "时," + minute + "分," + second
+ "秒");
} catch (Exception e) {
e.printStackTrace();
}
}

private static String getCurrDay() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}

private static Date convertStrToDate(String dateStr) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(dateStr);
}

}

热心网友 回答时间:2022-06-18 07:49
你不需要定义2个Scanner。用同一个它在换行输入时候也只会按你的命令输入int.另外你需要在main方法结尾的大括号前加上Scanner 的关闭。例如定义Scanner sc的话。结尾要加上sc.close();
热心网友 回答时间:2022-06-18 07:50
public static long compute(Date d1,Date d2){
return d1.getTime() - d2.getTime();
}
public static void main(String []args){
Scanner sc = new Scanner(System.in);
String d1,d2;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("please enter a begin time,like this:1987-01-01 22:01:01");
d1 = sc.nextLine();
// 这里做必要的非空或是日期解析判断
System.out.println("please enter a awake time,like this:1987-01-01 08:01:01");
d2 = sc.nextLine();
// 这里做必要的非空或是日期解析判断
try{
System.out.println("the result:" + compute(sdf.parse(d1),sdf.parse(d1)));
}catch(Exception e){
// 可以输出异常信息,可能空指针或是日期解析异常
}
}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

java 计算两个时间之间的差。 java计算两个时间相差多少小时 java时间差计算 java date 计算时间差 java如何计算工作日之间的时间差 Java计算两个日期时间相差几天,几小时,几分钟等 java 计算两个时间相差多少秒 java中怎么获取时间差? java计算时间差的几种方法 奢侈品有哪些上市公司 公司企业类型有什么? 证券投资选修课期末论文 关于股票的分析报告 公司注销详细流程? 公司注销都需要什么资料 404 Not Found 净资产为负多久退市? 新时代信托重组方是谁 14年华鑫股份半年报什么时侯能出来 小米10来消息呼吸灯怎么设置 word文档中的表格大小调整 java中%代表什么意思? 怎么在java中输入一个数,然后输出结果? java 比较时分秒时间差 java中标识符的使用问题 java 获取当前时间与零点的时间差 java时间加减 java中如何在代码中判断时间过了10秒 计算Java程序执行时间的几种方法 通过java如何计算sql数据库中两个时间差 iphone 4 的apple ID 密码忘记了怎么找回? 有些文件上标有什么字什么号的,那是什么意思?那能够反映文件的一些什么内容? 苹果4手机忘记ID密码怎么恢复原厂设置? 苹果4忘记了ID和密码怎么激活? 电脑里带编号的文件是什么? 苹果4需要激活但是id密码忘了怎么办! 电脑带编号文件是什么文件 苹果四忘了ld密码怎么办 哪些红头文件要编号 苹果4的apple id密码忘了怎么办 有详细清单编码的文件是什么书
Top