Вы имеете в виду время между lastTimeCheck и lastTimeCheck + timePeriod?Это было бы
float p = (float)(ofGetElapsedTimeMililis() - lastTimeCheck) / (float)(timePeriod);
Возможно, вы также можете потерять один из типов бросков с плавающей точкой, но я думаю, что безопаснее и не менее читабельно оставить их. Если вам нужно гарантировать, что p меньше или равноодин, однако, вы должны либо сохранить и повторно использовать значение ofGetTimeElapsedMillis из предыдущего вызова, либо вы должны явно проверить p впоследствии.
int millisNow = ofGetElapsedTimeMillis();
int millisSinceLastCheck = millisNow - lastTimeCheck;
if (millisSinceLastCheck > timePeriod) {
lastTimeCheck = millisNow;
millisSinceLastCheck = 0;
cout << "it's time!" << endl;
}
float p = (float)(millisSinceLastcheck) / (float)(timePeriod);
cout << "time fraction: " << p << endl;