convert time_t to ticks
I have a function that convert ticks to time_t format
long ticks = DateTime.Now.Ticks;
long tt = GetTimeTSecondsFrom(ticks);
long GetTimeTSecondsFrom(long ticks)
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return (long) (new DateTime(ticks) - epoch).TotalSeconds;
}
Now i am confused how to convert it back to ticks with some mathematical formula and not with a function.
Any suggestions...??
thanks
Let me take a general case and explain. DateTime.Now.Ticks give me a value 633921719670980000 which is in tics
then i convert this in time_t with the above function and get tt = 1256575167
now i want 开发者_运维技巧to convert this back to 633921719670980000. for this i need a formula
The answer was given as a comment to your original question regarding converting ticks to time_t.
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return TimeSpan.FromSeconds(time_t_value).Ticks + epoch.Ticks;
The date1970-01-01 00:00:00 Z
is exactly 62,135,596,800 seconds (621,355,968,000,000,000 ticks), so to convert aDateTime
tick count into atime_t
value you could just scale it (divide by 10,000,000) to get seconds, and then subtract that offset.
To go the other way, do the reverse: add the offset seconds to thetime_t
value, then scale it (multiply by 10,000,000) to get ticks.
From the MSDN documentation:
A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond.
So, a function to convert seconds to ticks would look something like:
long GetTicksFromSeconds(long seconds)
{
return seconds * 10000000;
}
精彩评论