Ignore milliseconds when comparing two datetimes

前端 未结 14 2283
一个人的身影
一个人的身影 2020-12-08 12:47

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 download

14条回答
  •  眼角桃花
    2020-12-08 13:20

    This is overkill for a single Truncate, but if you have several and of various types you could do this using the generalized Extension Method below:

    DateTime dtSecs = DateTime.Now.TruncateTo(Extensions.DateTruncate.Second);
    DateTime dtHrs  = DateTime.Now.TruncateTo(Extensions.DateTruncate.Hour);
    

    More general Use Extension method:

        public static DateTime TruncateTo(this DateTime dt, DateTruncate TruncateTo)
        {
            if (TruncateTo == DateTruncate.Year)
                return new DateTime(dt.Year, 0, 0);
            else if (TruncateTo == DateTruncate.Month)
                return new DateTime(dt.Year, dt.Month, 0);
            else if (TruncateTo == DateTruncate.Day)
                return new DateTime(dt.Year, dt.Month, dt.Day);
            else if (TruncateTo == DateTruncate.Hour)
                return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
            else if (TruncateTo == DateTruncate.Minute)
                return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
            else 
                return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);
    
        }
        public enum DateTruncate
        {
            Year,
            Month,
            Day,
            Hour,
            Minute,
            Second
        }
    

提交回复
热议问题