Tengo dos fechas, una de una marca de tiempo y otra que estoy generando en el código. Necesito probar su igualdad, y me encantaría hacerlo sin demasiadas expresiones. He aquí un ejemplo de mis dos fechas:¿Cuál es la mejor manera de comparar la igualdad de dos DateTime en C# ... pero solo con cierta precisión?
DateTime expireTimeStampUTC =
DateTime.Parse(UTCValueFromDatabase));
DateTime expectedExpireTime =
DateTime.UtcNow.AddHours(NumberOfExpectedHoursInConfig);
Esto es demasiado alta precisión de una prueba:
si (expireTimeStampUTC.Equals (expectedExpireTime)) {}
no me importa si Es exacto al segundo, solo a la hora.
¿Podría ser la mejor solución para hacer compuesto algo como esto:
if (expireTimeStampUTC.Date.Equals(expectedExpireTime.Date))
{
if (!expireTimeStampUTC.Hour.Equals(expectedExpireTime.Hour))
{
pass = false;
}
}
No estoy el más experimentado con C# ... ¿hay alguna manera de hacer esto elegentPackage?
En realidad, creo que este es en realidad un mejor estilo. Creo que está más claro lo que está sucediendo. Nunca antes he cambiado el token de "respuesta correcta", pero creo que en este caso, esta es la mejor solución. – danieltalsky
Bastante justo. Creo que es seis y media docena el otro. La sintaxis de "Duración()" podría ser más legible, pero tiene la carga (por cierto insignificante) de actualizar un TimeSpan en ambos lados de la comparación. –