コード例 #1
0
        public static bool Equal(this DateTime now, DateTime then, DatePartFlags flags)
        {
            bool isEqual = false;

            if (flags == DatePartFlags.Ticks)
            {
                isEqual = (now == then);
            }
            else
            {
                DatePartFlags equalFlags = DatePartFlags.Ticks;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Year) && now.Year == then.Year)        ? DatePartFlags.Year        : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Month) && now.Month == then.Month)       ? DatePartFlags.Month       : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Day) && now.Day == then.Day)         ? DatePartFlags.Day         : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Hour) && now.Hour == then.Hour)        ? DatePartFlags.Hour        : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Minute) && now.Minute == then.Minute)      ? DatePartFlags.Minute      : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Second) && now.Second == then.Second)      ? DatePartFlags.Second      : 0;
                equalFlags |= (FlagIsSet(flags, DatePartFlags.Millisecond) && now.Millisecond == then.Millisecond) ? DatePartFlags.Millisecond : 0;
                isEqual     = (flags == equalFlags);
            }
            return(isEqual);
        }
コード例 #2
0
        //////////////////////////////////////////////////////////////////////////////////
        // DateTime methods
        private static bool FlagIsSet(DatePartFlags flags, DatePartFlags flag)
        {
            bool isSet = ((flags & flag) == flag);

            return(isSet);
        }