If you use the logic from your
FlagIsSet
function, you can remove half of your tests:
DatePartFlags equalFlags = DatePartFlags.Ticks;
equalFlags |= (now.Year == then.Year) ? DatePartFlags.Year : 0;
equalFlags |= (now.Month == then.Month) ? DatePartFlags.Month : 0;
equalFlags |= (now.Day == then.Day) ? DatePartFlags.Day : 0;
equalFlags |= (now.Hour == then.Hour) ? DatePartFlags.Hour : 0;
equalFlags |= (now.Minute == then.Minute) ? DatePartFlags.Minute : 0;
equalFlags |= (now.Second == then.Second) ? DatePartFlags.Second : 0;
equalFlags |= (now.Millisecond == then.Millisecond) ? DatePartFlags.Millisecond : 0;
isEqual = (flags & equalFlags) == flags;
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.