I have been trying to decode Thread-Index or ConversationIndex, by following this link I have build conversation code...
It works fine but problem is when finding differenceTime for childBlocks
if the first bit is '0'(added high 15 bits and the low 18 bits), results are correct for this case, but I doubt that I have mistake when 1st bit is 1
I have also refered Microsoft Documentation and tried adding high 10bits and low 23 bit when 1st bit is ‘1’.But the results are incorrect
Consider this example mentioned in this link : I have got the correct difference time, and here is flow…
Child Block Hex:0000CCBA30
Child Block Binary:0000000000000000110011001011101000110000 Length:40
Child Block Segerated:0 0000000000000001100110010111010 0011 0000
Since have 1st bit as '0' added high 15 bits and the low 18 bits:
Difference Time in Binary:0000000000000000000000000000001100110010111010000000000000000000
Difference Time in milliseconds:1373896
difference Time is : 00:22:53
Child Block Result Time:Wed Jan 02 22:53:58 IST 2013
But for Conversation Index: AQHWLRNo4NaOjvXU8EODe0ZotrA8B6itzaxf ,which I used for testing...
zero paded file time : 1D62D1368000000
nano seconds : 132342800426467328
Result Header Time :2020-05-18T12:54:02.646732800Z(Got this correct)
Hex:A8ADCDAC5F
Child Block Binary : 1010100010101101110011011010110001011111 Length:40
Child Block Segerated:1 0101000101011011100110110101100 0101 1111
Since have 1st bit as '1' added high 10 bits and the low 23 bits: 0000000000010100010101101110011011010110000000000000000000000000
Difference Time in NanoSeconds:5725048967004160
Difference Time in milliseconds:572504896700
difference Time is : 159029:08:16
Sum of header and child nanosecond:138067849393471488
Child Block Time : 2038-07-09T18:02:19.347148800Z