У меня есть теория, почему следующий код не дает нужных мне результатов:
endDate = DateTime.UtcNow.AddDays(1).ToShortDateString() + " " +
DateTime.UtcNow.TimeOfDay.Subtract(
new TimeSpan(0, 0, 0, 0, DateTime.UtcNow.TimeOfDay.Milliseconds));
Процессор должен вычислить DateTime.UtcNow.TimeOfDay.Milliseconds
, и из-за длительности одного такта ЦП (и времени, необходимого для обработки этого свойства и возврата результата), это не означает, что DateTime.UtcNow.TimeOfDay.Milliseconds
будет вычитать точное количество миллисекунд, указанное в DateTime.UtcNow.TimeOfDay
Мне нужно знать, какой самый простой и эффективный метод для удаления количества миллисекунд из DateTime.UtcNow.TimeOfDay
, без необходимости использовать огромное количество процессорного времени? Это мое приложение довольно большой, и эта проблема довольно проста. Но когда это приложение развернуто, нет места для его нестабильности. Эти миллисекунды должны быть обрезаны, поскольку они отправляются хранимой процедуре в SQL Server, и эта конкретная хранимая процедура не поддерживает миллисекунды в DateTimes. Я также часто сталкиваюсь с этой проблемой, но обычно я конвертирую дату в строку (которая сама по себе является приведением), разделяю строку на конечной точке в миллисекундах и использую позицию индекса 0, чтобы получить нужное мне время. Есть ли более короткий и эффективный способ?
Для меня важнее всего стабильность и скорость.
Заранее спасибо