Comparing times only, without dates?

后端 未结 8 1359
不知归路
不知归路 2021-01-31 16:30

I need to write a method that will check if Time.now is in between the open hours and the close hours of a shop.

The open and close hours are saved as a Tim

8条回答
  •  Happy的楠姐
    2021-01-31 16:48

    This will work only for time being in 24 hour format and when start hour is less than end hour.

    Time start = DateUtil.convertStringToTime(Object.getStartTime());
    Time mid = DateUtil.convertStringToTime(time);
    Time end = DateUtil.convertStringToTime(Object.getEndTime());
    
        if(mid.getHours()>start.getHours() && mid.getHours()< end.getHours())
        {
            flag=true;
        }
        else if(mid.getHours() == start.getHours() && mid.getHours() < end.getHours())
        {
            if(mid.getMinutes() > start.getMinutes())
            {               
                flag=true;              
            }
            else if(mid.getMinutes() == start.getMinutes())
            {               
                if(mid.getSeconds() >= start.getSeconds())
                {
                    flag=true;
                }
            }
        }
        else if(mid.getHours() > start.getHours() && mid.getHours() == end.getHours())
        {
            if(mid.getMinutes() < end.getMinutes())
            {
                flag=true;
            }
            else if(mid.getMinutes() == end.getMinutes())
            {
                if(mid.getSeconds() <= end.getSeconds())
                {
                    flag=true;
                }
            }
        }
        else if(mid.getHours() == start.getHours() && mid.getHours() == end.getHours())
        {
            if(mid.getMinutes() > start.getMinutes() && mid.getMinutes() < end.getMinutes())
            {
                flag=true;
            }           
            else if(mid.getMinutes() == start.getMinutes() && mid.getMinutes() < end.getMinutes())
            {
                if(mid.getSeconds() > start.getSeconds())
                {
                    flag=true;
                }
            }
            else if(mid.getMinutes() > start.getMinutes() && mid.getMinutes() == end.getMinutes())
            {
                if(mid.getSeconds() < end.getSeconds())
                {
                    flag=true;
                }
            }
            else if(mid.getMinutes() == start.getMinutes() && mid.getMinutes() == end.getMinutes())
            {
                if(mid.getSeconds() > start.getSeconds() && mid.getSeconds() < end.getSeconds())
                {
                    flag=true;
                }
            }
        }
    

提交回复
热议问题