Somewhere in your model, you have some abstract time, say
and a function to tick, say
Code:
void tick ( void ) {
now++;
}
In your library book object say, you may have
which you initialise with something like this when the book is borrowed;
Code:
book->returnBy = now + 7; // return within a week
So once a day, you call tick() to bump time along (if you're doing it in real-time), or at whatever rate you want if you just want to 'model' what would happen.
Also once a day, your 'overdue' function would do something like
Code:
if ( now > book->returnBy ) {
// OVERDUE!
}