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?

Original source