0

我想检查设置时间是否小于日历(移动设备)时间。
它显示设置的警报,如果设置时间不超过 1.5 小时,它会显示“ruko ruko”消息。如果两个条件都为假,那么它将进入其他条件。
它没有给我预期的结果。这是我的代码:

 GregorianCalendar mcalender=new GregorianCalendar();
mcalender.set(2013, 7, 17, 13, 0);

if(mcalender.getTimeInMillis()<=cal.getTimeInMillis()){
    Toast.makeText(getBaseContext(), "sets ", Toast.LENGTH_SHORT).show();
}
else if(mcalender.getTimeInMillis()+5400000<=cal.getTimeInMillis()){
    Toast.makeText(mContext, "ruko ruko", Toast.LENGTH_SHORT).show();
}
else{
    Toast.makeText(getBaseContext(), "Time not gone ", Toast.LENGTH_SHORT).show();
}
4

1 回答 1

1

问题是首先检查 mcalender.getTimeInMillis()。例如,当您将闹钟设置为 5:30 时,在 4:30 时,第一部分已经为真,因此完全跳过 else if 部分。只需颠倒顺序就可以了:)

    if(mcalender.getTimeInMillis()+5400000<=cal.getTimeInMillis()){
        //If still have more than 1.5 hours to go (i.e. 2 hours left etc)
        Toast.makeText(mContext, "ruko ruko", Toast.LENGTH_SHORT).show();
    }
    else if(mcalender.getTimeInMillis()<=cal.getTimeInMillis()){
        //Not more than 1.5 hours, but still not time up yet.
        Toast.makeText(getBaseContext(), "sets ", Toast.LENGTH_SHORT).show();
    }
    else{
        //Time is up. Run action.
        Toast.makeText(getBaseContext(), "Time not gone ", Toast.LENGTH_SHORT).show();
    }
于 2013-08-10T12:29:28.740 回答