Estoy recuperando dos valores de fecha y hora de la base de datos. Una vez que se recupera el valor, necesito la diferencia entre los dos valores. Para eso, creo una variable de intervalo de tiempo para almacenar la diferencia de los 2 valores de fecha.
TimeSpan? variable = datevalue1 - datevalue2;
Ahora necesito mostrar la diferencia que se almacena en la variable Timespan en términos de número de horas. Me referí a TimeSpan.TotalHours pero no pude aplicar lo mismo por alguna razón. ¿Cómo puedo hacer eso? Estoy usando C # en un proyecto MVC. ¿Simplemente necesito mostrar el valor de diferencia en horas?
EDITAR: Dado que el intervalo de tiempo era anulable, no pude usar la propiedad de horas totales. Ahora puedo usarlo haciendo TimeSpanVal.Value.TotalHours ;
c#
asp.net-mvc-2
datetime
timespan
reggie
fuente
fuente
TimeSpan.TotalHours
?.Value.TotalHours
Respuestas:
Creo que estás confundido porque no has declarado un
TimeSpan
has declarado unTimeSpan?
que es anulableTimeSpan
. Elimine el signo de interrogación si no necesita que sea anulable o usevariable.Value.TotalHours
.fuente
es posible que también desee mirar
fuente
En la muestra, estamos creando dos objetos de fecha y hora, uno con la hora actual y otro con 75 segundos agregados a la hora actual. Luego llamaremos al método .Subtract () en el segundo objeto DateTime. Esto devolverá un objeto TimeSpan. Una vez que obtenemos el objeto TimeSpan, podemos usar las propiedades de TimeSpan para obtener las horas, minutos y segundos reales.
Resultado:
fuente
TotalSeconds
,TotalMinutes
etc.¿Hay alguna razón que estás usando
Nullable
?Si quieres usar
Nullable
, puedes escribirvariable.Value.TotalHours
.O simplemente puede escribir:
(datevalue1 - datevalue2).TotalHours
.fuente
DateTime?
DateTime
. En .NET,DateTime - DateTime = TimeSpan
.Nullable<DateTime>
y, por lo tanto, obtienes unNullable<TimeSpan>
.Aquí hay otro ejemplo de restar dos fechas en C # ...
fuente
Una forma más precisa para las horas pagadas de los empleados u otro requisito de precisión :
https://dotnetfiddle.net/tVIoVJ
fuente
También puede agregar diferencia entre las fechas si comparamos dos fechas diferentes
fuente
WOW, tengo que decir: que sea simple:
y:
El objeto DateTime tiene toda la lógica integrada para manejar el resultado booleano.
fuente