You reset the button press variable 'TimeNow1' every time ButtonPress() is called, not just when a button press is detected. That is not right.
Usually it would have a descriptive name like "previousPress" or "lastPress". There can only be one time now, this Now1 and Now2 obfuscates the meaning.
Also 500 milliseconds is far too long for a debounce interval.