/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <returns></returns> override public object ConvertToObject(byte[] bytes) { if (bytes == null) { throw new ArgumentNullException("bytes"); } if (bytes.Length < 8) { throw new ArgumentException("xgdatatime bytes length must >= 8"); } //BCDConverter c = new BCDConverter(); int year = (int)BCDConverter.BCDToDEC(bytes[YEAR_POS]); int month = (int)BCDConverter.BCDToDEC(bytes[MONTH_POS]); int day = (int)BCDConverter.BCDToDEC(bytes[DAY_POS]); int hour = (int)BCDConverter.BCDToDEC(bytes[HOUR_POS]); int minute = (int)BCDConverter.BCDToDEC(bytes[MINUTE_POS]); int second = (int)BCDConverter.BCDToDEC(bytes[SECOND_POS]); year += 2000; return(new DateTime(year, month, day, hour, minute, second)); //byte[] cardIdDatas = new byte[ CARD_ID_DATA_LENGTH ]; //Array.Copy( datas, CARD_ID_BEGIN_POS, cardIdDatas, 0, CARD_ID_DATA_LENGTH ); //string cardId = MakeCardId( cardIdDatas ); //return new Record( year, month, day, hour, minute, second, cardId ); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> override public byte[] ConvertToBytes(object obj) { TimeSpan ts = (TimeSpan)obj; byte s = (byte)BCDConverter.DECToBCD(ts.Seconds); byte m = (byte)BCDConverter.DECToBCD(ts.Minutes); byte h = (byte)BCDConverter.DECToBCD(ts.Hours); return(new byte[] { s, m, h }); }
/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <returns></returns> override public object ConvertToObject(byte[] bytes) { if (bytes == null || bytes.Length < 3) { throw new ArgumentException("bytes.Length must >= 3"); } byte s = (byte)BCDConverter.BCDToDEC(bytes[0]); byte m = (byte)BCDConverter.BCDToDEC(bytes[1]); byte h = (byte)BCDConverter.BCDToDEC(bytes[2]); return(new TimeSpan(h, m, s)); }
public void bcdconvert_bcd4byteconvert_byte_count_property() { BCDConverter c = new BCDConverter(); BCD4ByteConverter c4 = new BCD4ByteConverter(); BCDConverter pt = c; Assert.AreEqual(1, pt.ByteCount); pt = c4; //pt.ByteCount = 2; Assert.AreEqual(4, pt.ByteCount); Assert.AreEqual(4, c4.ByteCount); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> override public byte[] ConvertToBytes(object obj) { DateTime dt = (DateTime)obj; byte d = (byte)BCDConverter.DECToBCD((byte)dt.Day); byte m = (byte)BCDConverter.DECToBCD((byte)dt.Month); int year = dt.Year; year %= 100; byte y = (byte)BCDConverter.DECToBCD((byte)year); return(new byte[] { d, m, y }); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public byte[] ConvertToBytes(object obj) { BCDConverter c = new BCDConverter(); DateTime dt = Convert.ToDateTime(obj); byte[] bs = new byte[8]; int y = dt.Year % 100; bs[YEAR_POS] = c.ConvertToBytes(y)[0]; bs[MONTH_POS] = c.ConvertToBytes(dt.Month)[0]; bs[DAY_POS] = c.ConvertToBytes(dt.Day)[0]; bs[HOUR_POS] = c.ConvertToBytes(dt.Hour)[0]; bs[MINUTE_POS] = c.ConvertToBytes(dt.Minute)[0]; bs[SECOND_POS ]=c.ConvertToBytes(dt.Second)[0]; return bs; }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public override byte[] ConvertToBytes(object obj) { BCDConverter c = new BCDConverter(); DateTime dt = Convert.ToDateTime(obj); byte[] bs = new byte[8]; int y = dt.Year % 100; bs[YEAR_POS] = (byte)BCDConverter.DECToBCD(y); bs[MONTH_POS] = (byte)BCDConverter.DECToBCD(dt.Month); bs[DAY_POS] = (byte)BCDConverter.DECToBCD(dt.Day); bs[HOUR_POS] = (byte)BCDConverter.DECToBCD(dt.Hour); bs[MINUTE_POS] = (byte)BCDConverter.DECToBCD(dt.Minute); bs[SECOND_POS ] = (byte)BCDConverter.DECToBCD(dt.Second); return bs; }
/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <returns></returns> override public object ConvertToObject(byte[] bytes) { if (bytes == null || bytes.Length < 3) { throw new ArgumentException("bytes.Length must >= 3"); } byte d = (byte)BCDConverter.BCDToDEC(bytes[0]); byte m = (byte)BCDConverter.BCDToDEC(bytes[1]); byte y = (byte)BCDConverter.BCDToDEC(bytes[2]); int year = 2000 + y; Console.WriteLine("{0}-{1}-{2}", year, m, d); return(new DateTime(year, m, d)); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> override public byte[] ConvertToBytes(object obj) { BCDConverter c = new BCDConverter(); DateTime dt = Convert.ToDateTime(obj); byte[] bs = new byte[8]; int y = dt.Year % 100; bs[YEAR_POS] = (byte)BCDConverter.DECToBCD(y); bs[MONTH_POS] = (byte)BCDConverter.DECToBCD(dt.Month); bs[DAY_POS] = (byte)BCDConverter.DECToBCD(dt.Day); bs[HOUR_POS] = (byte)BCDConverter.DECToBCD(dt.Hour); bs[MINUTE_POS] = (byte)BCDConverter.DECToBCD(dt.Minute); bs[SECOND_POS] = (byte)BCDConverter.DECToBCD(dt.Second); return(bs); }
/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <returns></returns> public object ConvertToObject(byte[] bytes) { if (bytes == null) throw new ArgumentNullException("bytes"); if (bytes.Length < 8) throw new ArgumentException("xgdatatime bytes length must >= 8"); BCDConverter c = new BCDConverter(); int year = (int)c.ConvertToObject( bytes[ YEAR_POS ] ); int month = (int)c.ConvertToObject( bytes[ MONTH_POS ] ); int day = (int)c.ConvertToObject( bytes[ DAY_POS ] ); int hour = (int)c.ConvertToObject( bytes[ HOUR_POS ] ); int minute = (int)c.ConvertToObject( bytes[ MINUTE_POS ] ); int second = (int)c.ConvertToObject( bytes[ SECOND_POS ] ); year += 2000; return new DateTime(year, month, day, hour, minute, second); //byte[] cardIdDatas = new byte[ CARD_ID_DATA_LENGTH ]; //Array.Copy( datas, CARD_ID_BEGIN_POS, cardIdDatas, 0, CARD_ID_DATA_LENGTH ); //string cardId = MakeCardId( cardIdDatas ); //return new Record( year, month, day, hour, minute, second, cardId ); }