"Midnight is still, technically, 0000 but for clarity is better expressed as 2359 on Sunday or 0001 on Monday for example."
Hmmm, The number sequence is 0000 to 2400, 2400 would be the end of Saturday, 0000 is the begining of Sunday, both refering to the same time. It depends on what viewpoint one is looking at it from.
"I think the problem comes from teaching kids "numbers go from 1 to 10" instead of 0 to 9. Always took ages for many of my computing/engineering students to let go, though some got it straight away. Makes writing code (eg array indexing) SO much easier."
It depends on what one is using numbers for, if one is counting objects, there's no zero, one starts from the first object, so the sequnce is 1,2,3 etc. The exception to this is years, there actually being a year zero in the calender. The sequence being BC 3,2,,1 0 AD 1,2,3 etc.
0 zero is a mathematical concept, the romans never had a numeral for zero, there arithmatic was done on an Abacus so did not need to display zero as a seprate entity. The Babylonians also did not have a symbol for zero and used a blank space instead, so to tell the difference between 15 and 150 one had to read the text around the number. The greeks also were unsure of zero, asking themselves how can nothing be something.
Zero became important when scholars started to venture into the area of higher mathematics and also financial accounting. It is of particular importance in computing as the presence of zero is used as flag in programming to indicate special attention is needed.