首页编程java编程java中用来计算时差的叫什么 JAVA新手,计算两个时间差

java中用来计算时差的叫什么 JAVA新手,计算两个时间差

编程之家2023-10-11105次浏览

各位老铁们,大家好,今天由我来为大家分享java中用来计算时差的叫什么,以及JAVA新手,计算两个时间差的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

java中用来计算时差的叫什么 JAVA新手,计算两个时间差

java 获取当前时间并求和某个给定时间的时间差

框架你得自己设计.

技术告诉你一些.

即时时间使用Date类或Calendar类,new Date()或Calendar.getInstance()得到本地即时时间.

java中用来计算时差的叫什么 JAVA新手,计算两个时间差

和某时间相比,如果给定年月日小时分秒之一或组合,则按Calendar.set处理,如果给定基准时间差1970-1-1 0:00:00则Calendar和Date都有设置方法.

总之,多看看API文档,问问师兄们.很简单的.

补充一点,Date原来很多构造函数和方法的,现在都过期了.

java中用来计算时差的叫什么 JAVA新手,计算两个时间差

java如何计算工作日之间的时间差

packagecom.wednesday.tools.timetools;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

publicclassGetWorkDayTimeMillisecond{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

GetWorkDayTimeMilliseconda=newGetWorkDayTimeMillisecond();

Longb=a.getWorkdayTimeInMillis("2010-05-178-00-00","2010-05-189-00-00","yyyy-MM-ddHH-mm-ss");

System.out.println(b);

}

/**

*获取两个时间之内的工作日时间(只去掉两个日期之间的周末时间,法定节假日未去掉)

*@paramstart-起始时间,共有3个重载方法,可以传入long型,Long型,与Date型

*@paramend-结束时间,共有3个重载方法,可以传入long型,Long型,与Date型

*@returnLong型时间差对象

*/

publicLonggetWorkdayTimeInMillis(longstart,longend){

//如果起始时间大于结束时间,将二者交换

if(start>end){

longtemp=start;

start=end;

end=temp;

}

//根据参数获取起始时间与结束时间的日历类型对象

Calendarsdate=Calendar.getInstance();

Calendaredate=Calendar.getInstance();

sdate.setTimeInMillis(start);

edate.setTimeInMillis(end);

//如果两个时间在同一周并且都不是周末日期,则直接返回时间差,增加执行效率

if(sdate.get(Calendar.YEAR)==edate.get(Calendar.YEAR)

&&sdate.get(Calendar.WEEK_OF_YEAR)==edate.get(Calendar.WEEK_OF_YEAR)

&&sdate.get(Calendar.DAY_OF_WEEK)!=1&&sdate.get(Calendar.DAY_OF_WEEK)!=7

&&edate.get(Calendar.DAY_OF_WEEK)!=1&&edate.get(Calendar.DAY_OF_WEEK)!=7){

returnnewLong(end-start);

}

//首先取得起始日期与结束日期的下个周一的日期

CalendarsnextM=getNextMonday(sdate);

CalendarenextM=getNextMonday(edate);

//获取这两个周一之间的实际天数

intdays=getDaysBetween(snextM,enextM);

//获取这两个周一之间的工作日数(两个周一之间的天数肯定能被7整除,并且工作日数量占其中的5/7)

intworkdays=days/7*5;

//获取开始时间的偏移量

longscharge=0;

if(sdate.get(Calendar.DAY_OF_WEEK)!=1&&sdate.get(Calendar.DAY_OF_WEEK)!=7){

//只有在开始时间为非周末的时候才计算偏移量

scharge+=(7-sdate.get(Calendar.DAY_OF_WEEK))*24*3600000;

scharge-=sdate.get(Calendar.HOUR_OF_DAY)*3600000;

scharge-=sdate.get(Calendar.MINUTE)*60000;

scharge-=sdate.get(Calendar.SECOND)*1000;

scharge-=sdate.get(Calendar.MILLISECOND);

}

//获取结束时间的偏移量

longecharge=0;

if(edate.get(Calendar.DAY_OF_WEEK)!=1&&edate.get(Calendar.DAY_OF_WEEK)!=7){

//只有在结束时间为非周末的时候才计算偏移量

echarge+=(7-edate.get(Calendar.DAY_OF_WEEK))*24*3600000;

echarge-=edate.get(Calendar.HOUR_OF_DAY)*3600000;

echarge-=edate.get(Calendar.MINUTE)*60000;

echarge-=edate.get(Calendar.SECOND)*1000;

echarge-=edate.get(Calendar.MILLISECOND);

}

//计算最终结果,具体为:workdays加上开始时间的时间偏移量,减去结束时间的时间偏移量

returnworkdays*24*3600000+scharge-echarge;

}

publicLonggetWorkdayTimeInMillis(Longstart,Longend){

returngetWorkdayTimeInMillis(start.longValue(),end.longValue());

}

publicLonggetWorkdayTimeInMillis(Datestart,Dateend){

returngetWorkdayTimeInMillis(start.getTime(),end.getTime());

}

publicLonggetWorkdayTimeInMillis(Stringstart,Stringend,Stringformat){

SimpleDateFormatsdf=newSimpleDateFormat(format);

Datesdate;

Dateedate;

try{

sdate=sdf.parse(start);

edate=sdf.parse(end);

returngetWorkdayTimeInMillis(sdate,edate);

}catch(ParseExceptione){

e.printStackTrace();

returnnewLong(0);

}

}

privateCalendargetNextMonday(Calendarcal){

intaddnum=9-cal.get(Calendar.DAY_OF_WEEK);

if(addnum==8)addnum=1;//周日的情况

cal.add(Calendar.DATE,addnum);

returncal;

}

/**

*获取两个日期之间的实际天数,支持跨年

*/

publicintgetDaysBetween(Calendarstart,Calendarend){

if(start.after(end)){

Calendarswap=start;

start=end;

end=swap;

}

intdays=end.get(Calendar.DAY_OF_YEAR)-start.get(Calendar.DAY_OF_YEAR);

inty2=end.get(Calendar.YEAR);

if(start.get(Calendar.YEAR)!=y2){

start=(Calendar)start.clone();

do{

days+=start.getActualMaximum(Calendar.DAY_OF_YEAR);

start.add(Calendar.YEAR,1);

}while(start.get(Calendar.YEAR)!=y2);

}

returndays;

}

}

JAVA新手,计算两个时间差

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

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

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

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

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

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

packagecom.testtimeinterval;

importjava.io.BufferedReader;

importjava.io.InputStreamReader;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassTestTimeInterval{

publicstaticvoidmain(String[]args){

try{

//得到系统输入的内容

System.out.println("请输入入睡时刻,用:隔开:");

InputStreamReaderisr_begin=newInputStreamReader(System.in);

BufferedReaderbr_begin=newBufferedReader(isr_begin);

StringbeginInputValue=br_begin.readLine();

System.out.println("入睡时间为:"+beginInputValue);

System.out.println("请输入起床时刻,用:隔开:");

InputStreamReaderisr_end=newInputStreamReader(System.in);

BufferedReaderbr_end=newBufferedReader(isr_end);

StringwakeupInputValue=br_end.readLine();

System.out.println("起床时间为:"+wakeupInputValue);

//1.将入睡时间拼接成一个完整的日期

StringsleepTimeStr=getCurrDay()+""+beginInputValue;

//1.1转换成日期格式

DatesleepTime=convertStrToDate(sleepTimeStr);

//2.将起床时间拼接成一个完整的日期

StringwakeupTimeStr=getCurrDay()+""+wakeupInputValue;

//2.1转换成日期格式

DatewakeupTime=convertStrToDate(wakeupTimeStr);

//计算2个日期之差

longinterval=wakeupTime.getTime()-sleepTime.getTime();

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

//3.将long转化成时分秒

//3.1先得到时

inthour=newLong(interval/(1000*60*60)).intValue();

//3.2再得到分

inttempLeft_minute=newLong(interval%(1000*60*60))

.intValue();

//3.2.1得到分

intminute=newLong(tempLeft_minute/(1000*60)).intValue();

//4.1得到秒

inttempLeft_second=newLong(tempLeft_minute%(1000*60))

.intValue();

//4.2.1得到分

intsecond=newLong(tempLeft_second/1000).intValue();

System.out.println("睡觉的时间为"+hour+"时,"+minute+"分,"+second

+"秒");

}catch(Exceptione){

e.printStackTrace();

}

}

privatestaticStringgetCurrDay()throwsException{

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

returnsdf.format(newDate());

}

privatestaticDateconvertStrToDate(StringdateStr)throwsException{

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");

returnsdf.parse(dateStr);

}

}

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

yy抢麦器(YY抢麦器电脑下载后无法打开使用)javaswing是什么?java中swing 全称