Я хотел бы использовать следующий код:
long long DateTimeToTimeT(System::DateTime dt)
{
System::DateTime epoch(1970, 1, 1, 0, 0, 0, 0);
long long totalSeconds = (dt - epoch).TotalSeconds;
return totalSeconds >= 0 ? totalSeconds : 0;
}
Вопрос в том, является ли исключение безопасным, или я должен здесь исправить некоторые ошибки?
Я имею в виду: это безопасно конвертировать из double
(то есть TotalSeconds) в long long
в таком случае?
Да, это безопасно: вычитание двух дат никогда не выбрасывает (http://msdn.microsoft.com/en-us/library/1905yhe2(v=vs.110).aspx) поскольку TimeSpan
охватывает гораздо больший интервал, чем действительные даты.
Других решений пока нет …