我的应用包含项目,每个项目都包含时间和状态。 状态基于时间,它将项目形成Json,时间是匹配时间,状态是匹配的状态(足球)。现在让我解释一下。
项目示例:
本地(设备)日期:22:00,2016/4/28。
比赛日期:2016年4月23日23:00。
比赛状态:没有开始。
现在,当本地时间是" 23:00"时,状态将是"上半场",当它" 23:45"时,状态将是"半场休息",当它超过" 00 :00",状态将恢复为"没有开始"
我的逻辑如下:
但是,当它超过00:00时它将恢复到原始状态(尚未开始)的问题,因为条件"如果它是白天和' #34;将是假的。
对此有何想法?
答案 0 :(得分:1)
因为这场足球比赛有一个固定的时间限制并且不能持续超过一天,我认为你可以通过特殊情况检查第二天的比赛以及到目前为止的比赛长度。将其作为伪代码:
long maxLengthOfGame = 5400000;
bool sameDay = matchDate.day() == localDate.day();
bool afterStartTime = localDate.time() >= matchDate.time();
bool nextDay = matchDate.day()+1 == localDate.day();
bool lengthOfCurrentGame = midnight - mathDate.time() + localDate.time();
bool withinTimeLimit = lengthOfCurrentGame < maxLengthOfGame;
if ((sameDay && afterStartTime) || (nextDay && withinTimeLimit)) {
// Code here
}