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); }
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); }