What is an efficient way of representing date? Try the following code (Taken from Art of Computer Programming Vol 4) var y = 2012; // Year 2012 var m = 6 // June var d = 30 // 30th day on the calendar month // Efficient representation (packing) var result = (((y Breaking this down further, we have (y Binary representation for 2012 is : 11111011100 Left shift by 4 : 111110111000000 Next we have, ((y 111110111000000 + 110 (m = 6) = 111110111000110 Left shift 5, becomes 11111011100011000000 Next we add the days to it which bring us to the following equation 11111011100011000000 + 11110 = 11111011100011011110 ( Decimal : 1030366) So our final result is : 1030366 // Unpacking var day = result%32; 1030366 % 32 = 30 (once you have this, the rest is pretty straight forward) var month = (result >> 5) %16; var year = result >> 9; Is there any other alternative for doing this? Maybe for other data types such as telephone.