.NET DateTime to time_t в секундах

Есть код C:

time1=((double)dt1-25569.0)*86400.0;

он конвертируется из TDateTime (VCL) в формат time_t в секундах, поэтому, наконец, мне нужно получить формат time_t из .NET DateTime

о time_t:

Почти всегда ожидается, что это целое значение, представляющее количество секунд, прошедших с 00:00 1 января 1970 г. по всемирному координированному времени. Этот связано с историческими причинами, так как он соответствует unix timestamp, но широко реализована в библиотеках C во всех платформ.

Итак, чтобы получить секунды в .NET, я делаю это (F #):

let seconds(dt : DateTime) =
    (dt.Ticks/10000000L)

или на C # (чтобы использовать более популярный тег C #):

Int64 seonds(DateTime dt)
{ return (dt.Ticks/ ((Int64)10000000)); } 
// hope it works, but please correct if I mistaken

Насколько я понимаю, пора из 12:00:00 1 января 0001 UTC.

Итак, чтобы использовать формат time_t, мне нужно добавить 1970 лет в секундах.

Итак, последняя функция должна быть (F #):

let seconds(dt : DateTime) =
    (dt.Ticks/10000000L) + 31536000*1970

C #:

Int64 seonds(DateTime dt)
{ return (dt.Ticks/ ((Int64)10000000)) + 31536000*1970; } 

Я действительно боюсь, что ошибся здесь. Пожалуйста, проверьте это решение! (проверьте, правильно ли это сделано)

Спасибо

5
задан cnd 29 August 2011 в 07:27
поделиться