System.IO.Compression.ZipArchiveFile.DosTimeToDateTime C# (CSharp) Method

DosTimeToDateTime() private static method

Convert a classic DOS time to date time.
private static DosTimeToDateTime ( uint dateTime ) : DateTime
dateTime uint A 32-bit number containing the date time.
return DateTime
        private static DateTime DosTimeToDateTime(uint dateTime)
        {
            int dateTimeSigned = (int)dateTime;
            int year = 1980 + (dateTimeSigned >> 25);
            int month = (dateTimeSigned >> 21) & 0xF;
            int day = (dateTimeSigned >> 16) & 0x1F;
            int hour = (dateTimeSigned >> 11) & 0x1F;
            int minute = (dateTimeSigned >> 5) & 0x3F;
            int second = (dateTimeSigned & 0x001F) * 2;       // only 5 bits for second, so we only have a granularity of 2 sec.
            if (second >= 60)
            {
                second = 0;
            }

            DateTime ret = new DateTime();
            try
            {
                ret = new System.DateTime(year, month, day, hour, minute, second, 0);
            }
            catch
            {
            }

            return ret;
        }