Vérifiez si Math.Abs(diff.TotalMinutes) == 0
ne le fera pas, non - c'est de vérifier si elles sont exactement le même. Essayez-vous de vérifier s'ils ont la même minute ou s'ils sont à moins d'une minute d'écart? Pour la première, utilisez:
where RoundToMinute(dateTime1) == RoundToMinute(dateTime2)
ayant déclaré:
public static DateTime RoundToMinute(DateTime time)
{
return new DateTime(time.Year, time.Month, time.Day,
time.Hour, time.Minute, 0, time.Kind);
}
Pour la seconde, utilisez:
where Math.Abs((dateTime1 - dateTime2).TotalMinutes) < 1
Vous devriez considérer ce que vous voulez que le résultat soit dans le cas où on est local et on est en UTC, en passant ...
Notez qu'il n'y a rien de spécifique à LINQ ici - en supposant que vous êtes utilisant LINQ to Objects. Si vous utilisez LINQ to SQL, alors vous ne pouvez évidemment pas utiliser les méthodes locales, et nous devrons revoir ...
EDIT: Je ne suis toujours pas très clair sur votre question. Si vous avez besoin d'être exactement la même date/heure, il est facile (en laissant de côté la possible locale vs numéro UTC):
where dateTime1 == dateTime2
Cependant, cela pose la question de savoir pourquoi vous parlez de « minute précision » dans le titre de la question ou "utiliser jusqu'à une précision minutieuse" dans le corps de la question. .
Je prendrais cet extrait et le posterais comme une réponse à votre question, de cette façon les gens peuvent commenter/voter dessus ou en bas dessus séparément de votre question –