示例#1
0
        public static TimeSpan ToTimeBCD(byte[] bytes)
        {
            if (bytes.Length != 2)
            {
                throw new NotSupportedException();
            }
            var origin = ByteConvert.ToUint16(bytes, false);
            var hh     = ByteConvert.FromBCD((byte)((origin & 0xFF00) >> 8));
            var mm     = ByteConvert.FromBCD((byte)(origin & 0x00FF));

            try
            {
                return(new TimeSpan(hh, mm, 0));
            }
            catch { }
            return(TimeSpan.MinValue);
        }
示例#2
0
        public static DateTime ToDateTimeBCD(byte[] bytes)
        {
            if (bytes.Length != 4)
            {
                throw new NotSupportedException();
            }
            var origin = ByteConvert.ToUint32(bytes, false);
            var YY     = (int)(origin & 0xFE000000) >> 25;
            var MM     = (int)(origin & 0x01E00000) >> 21;
            var DD     = (int)(origin & 0x001F0000) >> 16;
            var hh     = ByteConvert.FromBCD((byte)((origin & 0x0000FF00) >> 8));
            var mm     = ByteConvert.FromBCD((byte)(origin & 0x000000FF));

            try
            {
                return(new DateTime(YY, MM, DD, hh, mm, 0));
            }
            catch { }
            return(DateTime.MinValue);
        }