I need to compare two datetime values to determine equality(exactly the same),using minute precision.Would this be the best way to do it? My dates could have seconds and milliseconds, but i want to consider only down till minutes.
where (Math.Abs(datetime1.Subtract(datetime2).TotalMinutes) == 0)
Checking whether Math.Abs(diff.TotalMinutes) == 0
won't do it, no - that's checking whether they're exactly the same.
Are you trying to check whether they have the same minute, or whether they're less than a minute apart? For the first, use:
where RoundToMinute(dateTime1) == RoundToMinute(dateTime2)
having declared:
public static DateTime RoundToMinute(DateTime time)
{
return new DateTime(time.Year, time.Month, time.Day,
time.Hour, time.Minute, 0, time.Kind);
}
For the second, use:
where Math.Abs((dateTime1 - dateTime2).TotalMinutes) < 1
You should consider what you want the result to be in the case that one is local and one is in UTC, by the way...
Note that there's nothing LINQ-specific here - assuming you're using LINQ to Objects. If you're using LINQ to SQL, then obviously you can't use local methods, and we'll have to look again...
EDIT: I'm still very unclear on your question. If you need them to be exactly the same date/time, it's easy (leaving aside the possible local vs UTC issue):
where dateTime1 == dateTime2
However, that begs the question of why you mention "minute precision" in the question title or "using up to a minute precision" in the question body.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With