http://hikaruhorie.blogspot.com/2010/03/system-failure-of-playstation-network.html
Today, I found a post written about the problem by Yaju. (in Japanese)
http://blogs.wankuma.com/yaju/archive/2010/03/04.aspx
The author said that the problem might be due to confusing Binary-coded decimal (BCD) with binary. In BCD, every four digits are corresponding to each decimal digit. And many real time clock (RTC) count only last two digits of years in BCD. Then last two digits of 2010 is expressed 00010000. However, if a program took 00010000 as binary, it would be 16 and the program takes the year as 2016. Then it is a leap year. The author said that this PlayStation's problem might result of this RTC's bug.
I agree with his opinion and I want SCE to announce soon.
A correspondence table of decimal, BCD, binary and hexadecimal is below.
decimal BCD binary hexadecimal
0 0000 0000 0000 0000 0x00
1 0000 0001 0000 0001 0x01
2 0000 0010 0000 0010 0x02
3 0000 0011 0000 0011 0x03
4 0000 0100 0000 0100 0x04
5 0000 0101 0000 0101 0x05
6 0000 0110 0000 0110 0x06
7 0000 0111 0000 0111 0x07
8 0000 1000 0000 1000 0x08
9 0000 1001 0000 1001 0x09
10 0001 0000 0000 1010 0x0A
11 0001 0001 0000 1011 0x0B
12 0001 0010 0000 1100 0x0C
13 0001 0011 0000 1101 0x0D
14 0001 0100 0000 1110 0x0E
15 0001 0101 0000 1111 0x0F
16 0001 0110 0001 0000 0x10
Photo: http://www.vend123.com/