This is probably a dumb question, but I cannot seem to figure it out. I am comparing the LastWriteTime of two files, however it is always failing because the file I downloaded off the net always has milliseconds set at 0, and my original file has an actual value. Is there a simple way to ignore the milliseconds when comparing?
Here's my function:
//compare file's dates public bool CompareByModifiedDate(string strOrigFile, string strDownloadedFile) { DateTime dtOrig = File.GetLastWriteTime(strOrigFile); DateTime dtNew = File.GetLastWriteTime(strDownloadedFile); if (dtOrig == dtNew) return true; else return false; }
Thanks in advance
Compare date in milliseconds by using getTime() method. compareTo() method can be use to compare two dates in Java.
I recommend you use an extension method:
public static DateTime TrimMilliseconds(this DateTime dt) { return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, 0, dt.Kind); }
then its just:
if (dtOrig.TrimMilliseconds() == dtNew.TrimMilliseconds())
Care should be taken, if dt
has non-zero microseconds (fractions of millis). Setting only milliseconds to zero is not enough.
To set millis and below to zero (and get a succesfull comparison), the code would be:
dt = dt.AddTicks(-dt.Ticks % TimeSpan.TicksPerSecond); // TimeSpan.TicksPerSecond=10000000
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