import java.util.Calendar;public class Times{
public static void main(String[] args){
Calendar stop = Calendar.getInstance();
stop.set(99, 12, 29, 8, 40, 1);
Calendar start = Calendar.getInstance();
start.set(100, 1, 2, 12, 39, 44);
long time = start.getTimeInMillis() - stop.getTimeInMillis();
int hh = (int)(time/1000/60/60);
int minute = (int)(time - hh * 60 * 60 * 1000)/1000/60;
System.out.println("" + hh + ":" + minute);
}
}
public static void main(String[] args){
Calendar stop = Calendar.getInstance();
stop.set(99, 12, 29, 8, 40, 1);
Calendar start = Calendar.getInstance();
start.set(100, 1, 2, 12, 39, 44);
long time = start.getTimeInMillis() - stop.getTimeInMillis();
int hh = (int)(time/1000/60/60);
int minute = (int)(time - hh * 60 * 60 * 1000)/1000/60;
System.out.println("" + hh + ":" + minute);
}
}
public String getHours(String p_startDate,String p_stopDate) throws Exception{
//日期格式的转化
p_startDate = p_startDate.trim();
p_stopDate = p_stopDate.trim();
int nYear0 = Integer.parseInt(genMethod.readValueStr(p_startDate,"-",0))+100;
int nMonth0 = Integer.parseInt(genMethod.readValueStr(p_startDate,"-",1));
String sDate = genMethod.readValueStr(p_startDate,"-",2);
String sDateStr = genMethod.readValueStr(sDate," ",0);
int nDay0 = Integer.parseInt(sDateStr);
String hmsStr = genMethod.readValueStr(sDate," ",1);
int nHour0 = Integer.parseInt(genMethod.readValueStr(hmsStr,":",0));
int nMinute0 = Integer.parseInt(genMethod.readValueStr(hmsStr,":",1));
SLDate startSLDate = new SLDate(nYear0,nMonth0,nDay0,nHour0,nMinute0);
int nYear1 = Integer.parseInt(genMethod.readValueStr(p_stopDate,"-",0))+100;
int nMonth1 = Integer.parseInt(genMethod.readValueStr(p_stopDate,"-",1));
sDate = genMethod.readValueStr(p_stopDate,"-",2);
sDateStr = genMethod.readValueStr(sDate," ",0);
int nDay1 = Integer.parseInt(sDateStr);
hmsStr = genMethod.readValueStr(sDate," ",1);
int nHour1 = Integer.parseInt(genMethod.readValueStr(hmsStr,":",0));
int nMinute1 = Integer.parseInt(genMethod.readValueStr(hmsStr,":",1));
SLDate stopSLDate = new SLDate(nYear1,nMonth1,nDay1,nHour1,nMinute1);
long totalMinutes = (stopSLDate.getTime()-startSLDate.getTime())*24*60/86400000;
int nHours = (int)totalMinutes/60;
int nMinutes = (int)(totalMinutes - Long.parseLong(Integer.toString(nHours*60)));
return Integer.toString(nHours) + ":"+Integer.toString(nMinutes);
}
但是,如果startdate:2004-10-22 8:51:26 stopdate:1999-10-22 8:51:19
计算出来的结果是:-832752:0
请各位帮忙看看
http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.2961847
但是这个startDate不在是日期了,而是一个长整数,stopDate也是。
long startDate = System.getCurrentMillis();
////////do sth when run until stop
long stopDate = System.getCurrentMillis();
long rundate = stopDate - startDate;
//rundate 是运行期的毫秒数
//以下略
C_DATE_FORMATTER.applyPattern(as_Pattern);
return new Timestamp(C_DATE_FORMATTER.parse(as_DateString).getTime());
然后
long l_BeginDateTimeMillis = lTs_BeginDate.getTime();
long l_EndDateTimeMillis = lTs_EndDate.getTime();
long betweenDays = (long) ((l_EndDateTimeMillis - l_BeginDateTimeMillis)/C_ONE_DAY);
return String.valueOf(betweenDays);
}