如何在android中比较已知时间和当前时间?

2024-03-23

我正在尝试使用开始时间和结束时间,并计算当前时间的百分比(在开始时间和结束时间之间)。 例如,如果现在时间为 12:00,startHour = 11:00,End Hour = 14:00,则应返回 33(四舍五入),因为已经过去了 33% 的时间。

我已经尝试过以下方法,但也许我正在混合不同的格式......我不知道:

double currentTime = Calendar.getInstance().getTimeInMillis();
double startTime = Time.UTC(2012, 3, 20, 22, 0, 0);
double endTime = Time.UTC(2012, 3, 20, 23, 30, 0);
int prg = (int)((currentTime - startTime)/(endTime - startTime));

在此代码中,我假设当前时间在 22:00 到 23:30 之间

谢谢 埃亚勒


我尝试过自己并发现获取当前时间日历的时间(以毫秒为单位)时出错实例。

你收到错误是因为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);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中比较已知时间和当前时间? 的相关文章

随机推荐