Если я правильно понял ваш вопрос, это должно вам помочь.
В псевдокоде:
if ( ( currentSystemTime - 86400) >= (eventSystemTime - eventSystemTime mod 86400) ) {
// we are on the day after the event or later, so move the event forward to next week
eventSystemTime += repetitionFrequency
}
else if (currentSystemTime >= (eventSystemTime - eventSystemTime mod 86400) ) {
// we are on the same day as the event... do event stuff
}
РЕДАКТИРОВАТЬ: этот код сообщит вам, находитесь ли вы в тот же день,если вы хотите обработать , когда событие будет происходить иначе, тогда вы будете использовать переменную diff следующим образом:
diff = (eventSystemTime - eventSystemTime mod 86400) - (currentSystemTime - currentSystemTime mod 86400)
diff = diff/86400
// this will produce the difference between now and the event in days
Очевидно, что это будет гораздо более мудрым программированием, если вашДля eventSystemTime и currentSystemTime уже были заданы дни, а не секунды.
EDIT2: в этом уравнении 'mod' есть оператор по модулю, это просто способ установить для eventSystemTime значение полночь в день события