Reputation: 11010
I need to compare two files based on datetime upto minute by eliminating seconds while comparing...
public class FileCompareLastwritetime : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo>
{
public FileCompareLastwritetime() { }
public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2)
{
return f1.LastWriteTime == f2.LastWriteTime;
}
public int GetHashCode(System.IO.FileInfo fi)
{
string s = String.Format("{0}", fi.LastWriteTime);
return s.GetHashCode();
}
}
Upvotes: 1
Views: 1642
Reputation: 1063619
How about:
public class FileCompareLastwritetime
: System.Collections.Generic.IEqualityComparer<System.IO.FileInfo> {
public FileCompareLastwritetime() { }
public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2) {
return ToMinute(f1.LastWriteTime) == ToMinute(f2.LastWriteTime);
}
public int GetHashCode(System.IO.FileInfo fi) {
return ToMinute(fi.LastWriteTime).GetHashCode();
}
static DateTime ToMinute(DateTime value) {
return new DateTime(value.Year, value.Month, value.Day,
value.Hour, value.Minute, 0, value.Kind);
}
}
Upvotes: 4