Переводи время последнего получения бонуса в unixtime, записывай это значение для каждого юзера в базу данных, и при последующем сообщении "Бонус" пусть программа получает настоящее значение времени и так же переводит в unixtime. Дальше
if (unixtime_currently - unixtime_old) > 86400:
givebonus()
else:
sendmessage('Для получения бонуса нужно подождать ещё'+need_time) # и здесь отправить время, которое нужно подождать для получения бонуса. узнать его можно так же через разницу во времени и потом делением на 60 итд.