我尝试过自己并发现获取当前时间日历的时间(以毫秒为单位)时出错实例。
你收到错误是因为CurrentTime 的时间(以毫秒为单位)不准确,不知怎的,它有越野车,并且表示比当前时间少 1 个月的时间所以这就是为什么你得到否定答案的原因。
您可以通过以下方式执行此操作。
Calendar calCurr = Calendar.getInstance();
Log.i("Time in mili of Current - Normal", ""+calCurr.getTimeInMillis()); // see what it gives? dont know why?
Date date = new Date();
calCurr.set(date.getYear()+1900, date.getMonth()+1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());// so added one month to it
Log.i("Time in mili of Current - after update", ""+calCurr.getTimeInMillis()); // now get correct
Calendar start = Calendar.getInstance();
start.set(2012, 12, 1, 11, 28, 0);
Calendar end = Calendar.getInstance();
end.set(2012, 12, 1, 13, 28, 0);
if((start.compareTo(calCurr)==-1) && (calCurr.compareTo(end)==-1) && (start.compareTo(end)==-1))
{
double hrBetweenStartEnd = (end.getTimeInMillis()-start.getTimeInMillis())/3600000;
double hrBetweenStartCurr = (calCurr.getTimeInMillis()-start.getTimeInMillis())/3600000;
int percentage = (int) ((100*hrBetweenStartCurr)/hrBetweenStartEnd);
Log.i("Percentage", ""+percentage);
}