我有个计划

start-time = 4:15 PM
end-time = 2:00 AM

如果我的current-time(假设9:15 pm与开始或结束时间的格式相同)介于start-timeend-time之间,则转到screen 1其他明智的转到screen 2
我的问题是如何比较大于或等于“开始时间”和小于或等于“结束时间”。我试图将给定的时间值转换成current-time并进行比较,但milliseconds似乎大于“结束时间=2:00 am”,因为2:00 am将在午夜之后,这意味着如果“9:15 pm day=thurday,那么2:00 am将是星期五”。我已经找了很多,但找不到。任何形式的帮助都将不胜感激。
编辑:
当前时间、开始时间和结束时间所有值都取为current-time = 9:15 PM
编辑2
代码SPINET:
long currentTime = getMillis("9:15 PM");

long startTime = getMillis("4:15 PM");

long endTime = getMillis("2:00 AM");//this will be the next day's time confusing part for me

if(currentTime >= startTime && currentTime <= endTime)
{
   //goto screen 1
}
else
{
  // goto screen 2
}


private long getMillis(String givenTime)
{
   SimpleDateFormat sdf = new SimpleDateFormat("h:mm a");
try {
    Date mDate = sdf.parse(givenTime);
    long timeInMilliseconds = mDate.getTime();
    System.out.println("Date in milli :: " + timeInMilliseconds);
    return timeInMilliseconds;
} catch (ParseException e) {
            e.printStackTrace();
}
return 0;
}

最佳答案

步骤1:
你只需要在结束时间比开始时间短的时候增加一天。
步骤2:
应用条件检查当前时间是否介于开始时间和结束时间之间

    try {
        Date mToday = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
        String curTime = sdf.format(mToday);
        Date start = sdf.parse("4:15 PM");
        Date end = sdf.parse("2:00 AM");
        Date userDate = sdf.parse(curTime);

        if(end.before(start))
        {
            Calendar mCal = Calendar.getInstance();
            mCal.setTime(end);
            mCal.add(Calendar.DAY_OF_YEAR, 1);
            end.setTime(mCal.getTimeInMillis());
        }

        Log.d("curTime", userDate.toString());
        Log.d("start", start.toString());
        Log.d("end", end.toString());


        if (userDate.after(start) && userDate.before(end)) {
            Log.d("result", "falls between start and end , go to screen 1 ");
        }
        else{
            Log.d("result", "does not fall between start and end , go to screen 2 ");
        }
    } catch (ParseException e) {
        // Invalid date was entered
    }

10-07 19:47
查看更多