Tomo dos objetos de la base de datos. Uno es un nombre de archivo con inicio de fecha y el segundo es un objeto DateTime como 2021-08-08 17:32:07.880.
Primero, convertí el nombre del archivo a fecha y hora con el código que se muestra aquí:
var fileDate = DateTime.ParseExact(filename, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);Tengo que comprobar que la diferencia entre la primera cita y la segunda cita es de 3 horas 15 min o simplemente 3 horas.
¿Cómo elimino segundos y milisegundos de la fecha 2 y los comparo?
Iría similar a la recomendación de MatJ:
Tiene su tiempo de archivo y su tiempo de base de datos, que puede tener segundos y milisegundos. Si hace el último menos el anterior, obtiene un intervalo de tiempo que representa el tiempo entre las fechas y horas
dBDate - fileDateLos intervalos de tiempo tienen una propiedad TotalMinutes que es un decimal. Un intervalo de tiempo de 5 minutos y 45 segundos tendría un TotalMinutes de 5,75
Entonces, si lo convertimos en un int, corta los segundos; simples!
var t = (int)((dBDate - fileDate).TotalMinutes); Ahora puedes comparar tu t de igualdad con 180 (3h) o 195 (3h15h
Es muy fácil de hacer !
Prueba el siguiente código:
TimeSpan timeSpan = (firstDate - secondDate) timeSpan.CompareTo(new TimeSpan(3, 15, 0)) // hrs, mins, seconds Este método CompareTo devolverá 1 si la diferencia entre dos horas es mayor a 3 horas y 15 minutos; de lo contrario, devolverá -1
PD: firstDate y secondDate están en DateTime