コード例 #1
0
ファイル: S7.cs プロジェクト: robinson/DataLink
        /// <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);
        }