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

DateTimeToDosTime() private static method

Encodes a DateTime instance as a 32-bit number to save space. The format is used in DOS.
private static DateTimeToDosTime ( DateTime dateTime ) : uint
dateTime DateTime The DateTime instance.
return uint
        private static uint DateTimeToDosTime(DateTime dateTime)
        {
            int ret = ((dateTime.Year - 1980) & 0x7F);
            ret = (ret << 4) + dateTime.Month;
            ret = (ret << 5) + dateTime.Day;
            ret = (ret << 5) + dateTime.Hour;
            ret = (ret << 6) + dateTime.Minute;
            ret = (ret << 5) + (dateTime.Second / 2);   // only 5 bits for second, so we only have a granularity of 2 sec.
            return (uint)ret;
        }