开发者

convert time_t to ticks

开发者 https://www.devze.com 2022-12-09 06:13 出处:网络
I have a function that convert ticks to time_t format long ticks = DateTime.Now.Ticks; long tt = GetTimeTSecondsFrom(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 Zis exactly 62,135,596,800 seconds (621,355,968,000,000,000 ticks), so to convert aDateTimetick count into atime_tvalue 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_tvalue, 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;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号