Как я могу преобразовать значение DateTime в double? - PullRequest
2 голосов
/ 18 июня 2009

Как преобразовать значение DateTime в double?

Ответы [ 4 ]

9 голосов
/ 18 июня 2009

Если под double вы подразумеваете дату OLE-автоматизации, вы можете использовать DateTime.ToOADate(). Из связанной темы MSDN:

Дата автоматизации OLE реализована в виде числа с плавающей запятой, значение которого равно числу дней с полуночи 30 декабря 1899 года. Например, полночь 31 декабря 1899 года представлена ​​как 1,0; 6 утра, 1 января 1900 года представлено 2,25; полночь 29 декабря 1899 года представлена ​​-1,0; и 6 часов утра 29 декабря 1899 года обозначено -1,25.

Базовая дата автоматизации OLE - полночь 30 декабря 1899 года. Максимальная дата автоматизации OLE совпадает с MaxValue, последний момент 31 декабря 9999 года.

Если вы говорите о каком-либо другом представлении даты, которое также может быть сохранено в double, укажите ...

4 голосов
/ 18 июня 2009

DateTime.ToOADate () преобразуется в двойное значение OLE Automation Date в C #

0 голосов
/ 22 декабря 2017

Вы можете рассчитать разницу между вашим DateTime и DateTime.MinValue, а затем получить любое значение Total*.

var difference = DateTime.Now - DateTime.MinValue;
Console.WriteLine(difference.TotalMinutes);
Console.WriteLine(difference.TotalMilliseconds);
0 голосов
/ 23 сентября 2013

Да, дата автоматизации OLE позволяет Datetime преобразовать в десятичный / двойной тип. Однако результат / значение в десятичном / двойном не является точной системой Datetime.

Например,

Decimal dateIndDec = Convert.Decimal (Datetim.Today.ToOADate());

не равно MS SQL

 Select Convert (Decimal (10, 9), GetDate())

Заключение: Дата автоматизации OLE не является истинной системой datetime info ... не может ее использовать.

Меня везде искали по поводу преобразования Datetime значения в десятичное значение в C #, но без удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...