int LogicDetailParser::findDate(Task& task, string text){ int day, month, year; day = month = year = NOTSTATED; if(parserDate(text, day, month, year)){ if(year < YEARCHECK) year += TWOTHOUSAND; if(checkDate(day, month, year)){ setTaskDate(task, day, month, year); return FOUND; } else return ERROR; } return NOTFOUND; }
void GameTaskSystem::initGameTask( sqlite3* db ) { _sqlitedb = db; initGameProperty(); initDayTaskTable(); int today = NewDataMgr::getInstance()->convertTimeStrToNumber(CppCallJava::getInstance()->getSystemTime(), SystemTime_Day); int history = getTaskDate(); // 当前天日期与历史日期对比 if ( today != history || _dayTaskList.empty()) { setTaskDate( today ); // 重新生成任务表 cleanTaskProperty(); createDayTaskList(); } }
bool LogicDetailParser::parser(Task& task, string text, string operation){ int dateCheck; int timeCheck; string tempDate; string lowercaseText = textChangeLowercase(text); _hoursFlag = false; _taskDescription = text; _time = CANNOTFIND; _date = CANNOTFIND; getIndicators(lowercaseText); if(_slashPosition == NOTSTATED && _hrsPosition == NOTSTATED && _dotPosition == NOTSTATED && _colonPosition == NOTSTATED && _amPosition == NOTSTATED && _pmPosition == NOTSTATED){ task.setTaskDescription(text); return true; } if(_slashPosition != NOTSTATED){ dateCheck = findDate(task, lowercaseText); if(dateCheck == ERROR) return false; else if(dateCheck == FOUND){ tempDate = _date; _taskDescription = trimFoundText(_taskDescription, _date); lowercaseText = textChangeLowercase(_taskDescription); getIndicators(lowercaseText); dateCheck = findDate(task, lowercaseText); if(dateCheck == ERROR) return false; else if(dateCheck == FOUND) _taskDescription = trimFoundText(_taskDescription, _date); else if(dateCheck == NOTFOUND) setTaskDate(task, task.getStartDay(), task.getStartMonth(), task.getStartYear()); } } _date = tempDate; if(!findTime(task, textChangeLowercase(text))) return false; removeUnwantedText(); if(_taskDescription.size() != POINTZERO) task.setTaskDescription(_taskDescription); if(operation == "change"){ if(task.getStartDay() == task.getEndDay() && _hoursFlag) task.setEndDay(task.getStartDay() + POINTONE); return true; } if(operation == "add"){ if(task.getStartDay() == task.getEndDay() && _hoursFlag) task.setEndDay(task.getStartDay() + POINTONE); if (_time != CANNOTFIND && _date != CANNOTFIND){} else if (_time == CANNOTFIND){ task.setStartTime(900); task.setEndTime(1800); } else if (_date == CANNOTFIND) setDate(task); else //floating return false; } }