In C#, what is the difference between comparing two dates using tick and just as it is
.net, c#, datetime
Solution
Is this a more accurate way of comparing DateTime?
Not in the slightest. In fact, that is how the `>` operator is implemented internally.
From the .NET Reference source:
public static bool operator >(DateTime t1, DateTime t2) {
return t1.InternalTicks > t2.InternalTicks;
}
Someone might have thought they were being clever by skipping the one line of internal code and going straight to the `Ticks` property. In reality, the getter for `Ticks` returns `InternalTicks`, so unless it is optimized by the compiler, using the `Ticks` property adds two calls in order to save one call (neither of which would change the performance significantly).
Problem
I'm new to C#. I was going through some code written by someone who worked on my project earlier when I came across this: ``` if (olderTime.happenedWhen.Ticks > happenedWhen.Ticks) { thisIsTrulyNew = false; } ``` Both `olderTime.happenedWhen` and `happenedWhen` are of type `DateTime`. Is this a more accurate way of comparing DateTime? I know that Ticks represents 100 nano-second intervals from 00:00, January 1, 0001. But why do this sort of a comparison when I thought we could do: ``` if (olderTime.happenedWhen > happenedWhen){ thisIsTrulyNew = false } ``` Does the ticks comparison achieve something that the normal comparison wouldn't?