java 计算两个时间之间的差。
两时间格式为“hh:mm”若time1="23:50";time2="00:20";(为第二天的时间)怎么求得他们之间的分钟数。...
两时间格式为“hh:mm”
若time1 = "23:50";time2 = "00:20";(为第二天的时间)
怎么求得他们之间的分钟数。 展开
若time1 = "23:50";time2 = "00:20";(为第二天的时间)
怎么求得他们之间的分钟数。 展开
4个回答
展开全部
跨日的
import java.util.Date;
public class Test {
public static void main(String[] args) {
String time1 = "23:50";
String time2 = "00:20";
Date date1 = new Date();
Date date2 = new Date();
date1.setDate(1);//假定日期为1号
date1.setHours(23);//第一个小时
date1.setMinutes(50);//第一个分
date2.setDate(date1.getDate()+1);//第二天为2号
date2.setHours(0);//第二个小时
date2.setMinutes(20);//第二个分
long dt1MillSeconds = date1.getTime();
long dt2MillSeconds = date2.getTime();
int julianSeconds = (int) (dt2MillSeconds - dt1MillSeconds)/60/1000;//相差分数
System.out.println(julianSeconds);
}
}
-------------
30
import java.util.Date;
public class Test {
public static void main(String[] args) {
String time1 = "23:50";
String time2 = "00:20";
Date date1 = new Date();
Date date2 = new Date();
date1.setDate(1);//假定日期为1号
date1.setHours(23);//第一个小时
date1.setMinutes(50);//第一个分
date2.setDate(date1.getDate()+1);//第二天为2号
date2.setHours(0);//第二个小时
date2.setMinutes(20);//第二个分
long dt1MillSeconds = date1.getTime();
long dt2MillSeconds = date2.getTime();
int julianSeconds = (int) (dt2MillSeconds - dt1MillSeconds)/60/1000;//相差分数
System.out.println(julianSeconds);
}
}
-------------
30
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问time1 = "23:50";time2 = "00:20";中的time2有可能是第N天的时间吗,N>2
追问
不会,最多是跨一天这种特殊情况。两个时间都是当天那好办,就是夸日不知怎么处理~
追答
你说的是时间格式,我理解的是Date类型的数据,也就是说这两个数据你能取到
如果不是Date类型的数据,那么谁也不能知道哪个是哪一天的,time1 = "23:50";time2 = "00:20";这样小时数还可以看出来是隔天的,如果time1 = "00:50";time2 = "23:20";这样呢,我们就没办法知道是隔天还是当天的了,所以绝对不能判断出time2是隔天还是当天
所以我觉得这两个数据是Date类型的
我在程序里是直接定义了两个Date类型的数据:
public static void main(String[] args){
Date date1 = new Date(2011-1900,3-1,17,23,50,00);
Date date2 = new Date(2011-1900,3-1,18,00,20,00);
SimpleDateFormat format= new SimpleDateFormat("HH:mm");
System.out.println(format.format(date1));//输出23 : 50
System.out.println(format.format(date2));//输出00 : 20
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss");
System.out.println(format2.format(date1));//输出2011/03/17/ 23:50:00
System.out.println(format2.format(date2));//输出2011/03/18/ 00:20:00
System.out.println((date2.getTime()-date1.getTime())/60/1000 + "分钟");//date2.getTime()得到的是毫秒,所以要除以60*1000
}
运行结果:
23:50
00:20
2011/03/17/ 23:50:00
2011/03/18/ 00:20:00
30分钟
事实上真正计算时间差的只有 (date2.getTime()-date1.getTime())
其他的是为了写明白,Date类型的数据的格式化形式,咱们看到的23:50或者00:20是数据被格式化为HH:mm格式以后的形式,凡是Date类型的数据,都是可以取得一个毫秒单位的绝对数据,两个数据直接的差就是多少毫秒了,然后看我们是想要小时数,分钟数,还是秒数,再除以相应的值
不知道我说清楚了没有呢
如果你的time1和time2是String类型的,而且你也能够自己知道哪个是第一天哪个是第二天的话,那就提取字符串直接减
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package Test5;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) throws ParseException {
String time1 = "22:50";
String time2 = "00:20";
Date firDate = new Date();
Date secDate = new Date(firDate.getTime()+24*60*60*1000);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm");
String firDateStr = f.format(firDate).replaceFirst("\\d{2}:\\d{2}", time1);
String secDateStr = f.format(secDate).replaceFirst("\\d{2}:\\d{2}", time2);
long diff = Math.abs(f.parse(secDateStr).getTime() - f.parse(firDateStr).getTime());
int min = (int)diff/1000/60;
System.out.println("相差的分钟:"+min);
}
}
不考虑如何异常判断的情况
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) throws ParseException {
String time1 = "22:50";
String time2 = "00:20";
Date firDate = new Date();
Date secDate = new Date(firDate.getTime()+24*60*60*1000);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm");
String firDateStr = f.format(firDate).replaceFirst("\\d{2}:\\d{2}", time1);
String secDateStr = f.format(secDate).replaceFirst("\\d{2}:\\d{2}", time2);
long diff = Math.abs(f.parse(secDateStr).getTime() - f.parse(firDateStr).getTime());
int min = (int)diff/1000/60;
System.out.println("相差的分钟:"+min);
}
}
不考虑如何异常判断的情况
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这两个时间是确定在24小时之内吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询