In the .Net framework DateTime structure, the Year is defined as an int (which is really A System.Int32). However, the MSDN documentation says that the value will always be between 1 and 9999. Thus, a ushort (System.UInt16) is more than adequate to store the value and takes up half the space. So why is it an int and not a ushort?
There is an implicit conversion from ushort to int so there is no casting that needs to be done to do integer arithmetic on the Year.
I realize this is a micro-optimization issue and thus not very important. I am just curious.