Re: Decoding a date & time format

From: Phil Carmody <thefatphil_demunged_at_yahoo.co.uk>
Date: Tue, 28 Oct 2008 17:20:13 +0200
Message-ID: <8763nceogi.fsf_at_nonospaz.fatphil.org>


"Jon Slaughter" <Jon_Slaughter_at_Hotmail.com> writes:

> "Phil Carmody" <thefatphil_demunged_at_yahoo.co.uk> wrote in message 
> news:87abcoesl0.fsf_at_nonospaz.fatphil.org...

>> "Rob Nicholson" <rob.nicholson_at_nospan.com> writes:
>>> Not sure if this is a good place to post, but we're trying to reverse
>>> engineer an Oracle database which has two fields for date & time. They
>>> don't
>>> seem to be encoded using the standard Oracle date/time fields so we
>>> suspect
>>> the developer has used some bespoke encoding system.
>>>
>>> So I thought it would be a good challenge for somebody mathematically
>>> minded.
>>>
>>> The example I currently have is:
>>>
>>> 17th October 2008 encoded as 131598865
>>
>> Hexadecimal: 0x07D80A11
>> And:
>> 07D8 = 2008
>> 0A = 10
>> 11 = 17
>>
>>> 13:54:49 encoded as 221655296
>>
>> Hexadecimal: 0x0D363100
>> And:
>> 0D = 13
>> 36 = 54
>> 31 = 49
>
> Which means it's simply byte byte word format.
>
> i.e., day + month << 8 + year << 16

Not in C, it's not. + has higher precedence than <<.

Phil

-- 
Christianity has such a contemptible opinion of human nature that it does
not believe a man can tell the truth unless frightened by a belief in God.
No lower opinion of the human race has ever been expressed.
-- Robert Green Ingersoll (1833-1899), American politician and scientist
Received on Tue Oct 28 2008 - 16:20:13 CET

Original text of this message