Как я могу вычесть две даты в C#
?
У меня есть две переменные, DateTime
и мне нужно получить разницу между ними в часах.
DateTime fecharegistro = {04/05/2018 8:34:01} //obtenemos este valor de una base de datos
DateTime fechafin = DateTime.Now.Substract(fechaRegistro);
При компиляции приведенного выше кода я получаю сообщение об ошибке, говорящее о том, что объект не может быть неявно преобразован TimeStamp
в System.DateTime
, когда переменная имеет значение DateTime
.
Вычитание двух дат никогда не даст вам
DateTime
, ноTimeSpan
. Если вы хотите узнать количество часов, просто получите доступTotalHours
к свойству вычитания:PS нет необходимости использовать метод
Substract
,DateTime
можно просто вычесть даты (fecha2-fecha1
).Если вы хотите отформатировать вывод в удобочитаемом виде, вы можете использовать такой формат, как:
Этот код возвращает строку типа
04d 01h 44m
Добавление или вычитание дат возвращает TimeSpan . Поэтому вы можете получить часы непосредственно из результата этого вычитания.
Чтобы найти разницу во времени между двумя объектами класса
DateTime
, вы можете вычесть их обоих, результатом этой операции является объект классаTimeSpan
, по этой причине он не позволяет вам присвоить его объекту классаDateTime
. По этой причине компилятор выдает вам эту ошибку.То, что содержится в объекте класса
TimeSpan
, является результатом вычитания двух дат, то есть времени между обеими датами:В зависимости от ваших потребностей вы можете выполнять множество операций между объектами классов
TimeSpan
иDateTime
. Вы также можете просто использовать объектTimeSpan
, созданный в результате вычитания двух дат, для печати только разницы во времени.