When you keep regular hours, your subconscious brain becomes accustom to them. So unless you are a major roll and stop looking at the clock, it says that's enough - go home. Working long hours on a regular bases is a bad idea. That has burned out a lot of programmers; they just could not stand it any longer. I reached that point once. I had not taken a vacation for years, just a few days off every now and then. When I was reaching my breaking point and ask for a few weeks off, the manager said to finish my latest project first and I can have all the time I want. What he did not understand was that "it was not a want", "it was a necessity". I went home, but I did not come back. I did not even turn on my home system for 6 months. No internet, not email, no games, no nothing. Then I started looking for a new job. They did bring my back a few times to modify some other software I had developed for them. But I never touched their main product again and when I check, 5 years later, they were still using the previous version. They never brought anyone in to complete my work, not even me. :doh:
INTP "Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra "I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone