An embarrassing problem with elementary mathematics (local time computation)

I am living in Germany. Let's say that I want to know the local time in New York, and let's arrange that the local time in Germany is 11:00 o'clock (24-hour clock).

Germany's time is shifted 1 hour ahead (UTC +1), and New York's time is shifted 5 hours behind (UTC -5). So the difference is in this case -6 hours.

Here comes the problem: when I subtract 6 from 11, I get 5:00 o'clock as a result. But that's not the case.
The local time in New York is instead 6:00 o'clock.

Now, let's do another example with Turkey and London. Turkey's time is shifted 2 hours ahead (UTC +2), while London's time is not shifted (UTC 0).
Let's assume that the local time in Turkey is currently 12:00 o'clock. If I do the math I get 10:00 o'clock which appears to be correct.

Through both cases I noticed that every time a zero is involved (UTC 0 put on a number line) you get an overflow of 1 - why is that?