/// <summary> /// Returns a date /// </summary> /// <param name="Buffer"></param> /// <param name="Pos"></param> /// <returns></returns> public static DateTime GetDateAt(byte[] Buffer, int Pos) { int Year = S7.BCDtoByte(Buffer[Pos + 1]); if (Year < 90) { Year += 2000; } else { Year += 1900; } int Month = S7.BCDtoByte(Buffer[Pos + 2]); int Day = S7.BCDtoByte(Buffer[Pos + 3]); int Hour = S7.BCDtoByte(Buffer[Pos + 4]); int Min = S7.BCDtoByte(Buffer[Pos + 5]); int Sec = S7.BCDtoByte(Buffer[Pos + 6]); //lth: should be get by this position, it is bit moved now. //Year = S7.BCDtoByte(Buffer[Pos]); //if (Year < 90) // Year += 2000; //else // Year += 1900; //Month = S7.BCDtoByte(Buffer[Pos + 1]) - 1; //Day = S7.BCDtoByte(Buffer[Pos + 2]); //Hour = S7.BCDtoByte(Buffer[Pos + 3]); //Min = S7.BCDtoByte(Buffer[Pos + 4]); //Sec = S7.BCDtoByte(Buffer[Pos + 5]); var S7Date = new DateTime(Year, Month, Day, Hour, Min, Sec); return(S7Date); }