a flag can not function

What would YOU do if someone said "Meet me at the bar an hour from now, and I'll buy you a drink". If you look at your watch and see that it is 12:30, would you say "Shit, I need a new watch, because this one doesn't show straight up 12:00, so I can't add an hour to it to determine when to be at the bar". Of course not. You know how to compute an absolute time from a relative time.

Similarly, if that person arrives at the bar an hour and 10 minutes later, and apologizes for being late, and asks how long you've been waiting, you can determine a relative time from two absolute times.

All you have on the Arduino is a way of getting relative times - relative to when the Arduino started running. Well, that is all your watch is telling you. The time that is shows is relative to some arbitrary point chosen a long time ago. And, yet, you manage to function quite well with it.

Learn to do the same with the relative times that the Arduino gives you.