Programmers getting confused between Halloween and Christmas is quite normal as for programmers Dec 25= Oct 31! Well if you are a non-programmer it will definitely make no sense at all. For as a non-programmer you may recognize the abbreviation for Dec 25 as December 25^{th} and Oct 31 as October 31^{st} both are known to every one as Christmas and Halloween.

The two dates might be some special days for normal people but for programmers they might be something entirely different. Dec 25 is an abbreviation to Decimal 25 and Oct 31 is an abbreviation to Octal 31. You might have studied the decimal and octal number systems in elementary school but without being used in practical life, you might have forgotten so, let us understand the concept.

The decimal number system is just like the normal number system where you count the numbers from 0, 1, 2, 3, 4, 5, 6, till 9 and after nine you count in units of 10 like 10, 11, 12 and so forth. Same goes till ninety nine then you jump to another block of 10, 100, and 101 so on. Basically in decimal system after 9 the numbers are represented as multiples of 10 for example 25 as 2*10+5.

So what is the case with octal system, in octal system you will count till seven like 0, 1, 2, 3, 4, 5, 6, and 7 and you stop at 8. In octal system 10 is represented as 1 * 8 + 0 which comes out to be 8. So in octal system 8 is ten, nine as 11, ten is 12 and it continues. So the octal system is basically multiple of 8 where 31 represented as 3* 8+1 and so on.

For programmers it is one amusing coincidence that 2*10+5 is equal to 3*8+1. So, confusion is very common.