Click here to Skip to main content
15,908,172 members
Home / Discussions / C#
   

C#

 
GeneralRe: 64bit fixed point timestamp to and from DateTime Pin
DaveyM699-Jul-09 22:20
professionalDaveyM699-Jul-09 22:20 
AnswerRe: 64bit fixed point timestamp to and from DateTime [modified] Pin
Luc Pattyn9-Jul-09 13:41
sitebuilderLuc Pattyn9-Jul-09 13:41 
GeneralRe: 64bit fixed point timestamp to and from DateTime Pin
DaveyM699-Jul-09 22:16
professionalDaveyM699-Jul-09 22:16 
GeneralRe: 64bit fixed point timestamp to and from DateTime Pin
DaveyM699-Jul-09 23:05
professionalDaveyM699-Jul-09 23:05 
GeneralRe: 64bit fixed point timestamp to and from DateTime Pin
Luc Pattyn9-Jul-09 23:22
sitebuilderLuc Pattyn9-Jul-09 23:22 
GeneralRe: 64bit fixed point timestamp to and from DateTime [modified] Pin
DaveyM6910-Jul-09 4:00
professionalDaveyM6910-Jul-09 4:00 
GeneralRe: 64bit fixed point timestamp to and from DateTime Pin
Luc Pattyn10-Jul-09 7:28
sitebuilderLuc Pattyn10-Jul-09 7:28 
GeneralRe: 64bit fixed point timestamp to and from DateTime [modified] Pin
DaveyM6910-Jul-09 8:48
professionalDaveyM6910-Jul-09 8:48 
You're right - I was getting confused between nano and pico, this stuff has really fried my brain this week!

10ns is the smallest achievable resolution - good enough I think.

[Edit] After all that, once moved over to the real application, there were some serious errors in that code. I ended up dividing into the whole part and fractional part as you suggested initially. The code below works well Big Grin | :-D (In the actual app the ulong's are converted to a big endian byte array)[/Edit]
private void DateTimeToTimestamp(DateTime dateTime, int startIndex)
{
    UInt64 ticks = (UInt64)(dateTime - Epoch).Ticks;
    UInt64 seconds = ticks / TicksPerSecond;
    UInt64 fractions = ((ticks % TicksPerSecond) * 0x100000000L) / TicksPerSecond;
    for (int i = 3; i >= 0; i--)
    {
        data[startIndex + i] = (byte)seconds;
        seconds = seconds >> 8;
    }
    for (int i = 7; i >= 4; i--)
    {
        data[startIndex + i] = (byte)fractions;
        fractions = fractions >> 8;
    }
}

private DateTime TimestampToDateTime(int startIndex)
{
    UInt64 seconds = 0;
    for (int i = 0; i <= 3; i++)
        seconds = (seconds << 8) | data[startIndex + i];
    UInt64 fractions = 0;
    for (int i = 4; i <= 7; i++)
        fractions = (fractions << 8) | data[startIndex + i];
    UInt64 ticks = (seconds * TicksPerSecond) + ((fractions * TicksPerSecond) / 0x100000000L);
    return Epoch + TimeSpan.FromTicks((Int64)ticks);
}


Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
Why are you using VB6? Do you hate yourself? (Christian Graus)

modified on Saturday, July 11, 2009 8:11 PM

QuestionIsolatedStorageFileStream Pin
AAKAra9-Jul-09 10:32
AAKAra9-Jul-09 10:32 
AnswerRe: IsolatedStorageFileStream Pin
Henry Minute9-Jul-09 11:54
Henry Minute9-Jul-09 11:54 
QuestionMail Merged Word document in IE , Need Control and want to update it ..Please help Pin
Sandumone9-Jul-09 10:03
Sandumone9-Jul-09 10:03 
AnswerRe: Mail Merged Word document in IE , Need Control and want to update it ..Please help Pin
Mycroft Holmes9-Jul-09 11:45
professionalMycroft Holmes9-Jul-09 11:45 
QuestionLDAP Question Pin
mypicturefaded9-Jul-09 8:23
mypicturefaded9-Jul-09 8:23 
AnswerRe: LDAP Question Pin
Jeremy Likness9-Jul-09 8:27
professionalJeremy Likness9-Jul-09 8:27 
AnswerRe: LDAP Question Pin
Manas Bhardwaj9-Jul-09 8:29
professionalManas Bhardwaj9-Jul-09 8:29 
GeneralRe: LDAP Question Pin
mypicturefaded9-Jul-09 8:37
mypicturefaded9-Jul-09 8:37 
GeneralRe: LDAP Question Pin
Manas Bhardwaj9-Jul-09 8:41
professionalManas Bhardwaj9-Jul-09 8:41 
GeneralRe: LDAP Question Pin
mypicturefaded9-Jul-09 8:46
mypicturefaded9-Jul-09 8:46 
GeneralRe: LDAP Question Pin
Manas Bhardwaj9-Jul-09 8:49
professionalManas Bhardwaj9-Jul-09 8:49 
GeneralRe: LDAP Question Pin
mypicturefaded9-Jul-09 8:54
mypicturefaded9-Jul-09 8:54 
GeneralRe: LDAP Question Pin
Manas Bhardwaj9-Jul-09 8:57
professionalManas Bhardwaj9-Jul-09 8:57 
QuestionPassing a Method to a second form Pin
bwood20209-Jul-09 7:13
bwood20209-Jul-09 7:13 
AnswerRe: Passing a Method to a second form Pin
harold aptroot9-Jul-09 7:25
harold aptroot9-Jul-09 7:25 
GeneralRe: Passing a Method to a second form Pin
bwood20209-Jul-09 7:28
bwood20209-Jul-09 7:28 
GeneralRe: Passing a Method to a second form Pin
harold aptroot9-Jul-09 7:35
harold aptroot9-Jul-09 7:35 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.