using System.Runtime.InteropServices;   // 추가 하고

[DllImport("coredll.dll")]

private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

[DllImport("coredll.dll")]

private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);

        private struct SYSTEMTIME

        {

            public ushort wYear;

            public ushort wMonth;

            public ushort wDayOfWeek;

            public ushort wDay;

            public ushort wHour;

            public ushort wMinute;

            public ushort wSecond;

            public ushort wMilliseconds;

        }


        private void GetTime()  //  시스템 시간을 읽어온다

        {

             

            SYSTEMTIME stime = new SYSTEMTIME();

            GetSystemTime(ref stime);

          //  MessageBox.Show( Convert.ToString( stime.wHour));   현제시간 표시

           

        }


                                   // SetTime( "20121225" , "221122")  호출하면 됨  

        private void SetTime(string t_date, string t_time)    // 시스템 시간을 설정

        {

            try

            {

                int day_change = 0;  // 일자가 변경되는걸 알기 위해서


                SYSTEMTIME systime = new SYSTEMTIME();


              // UTC 타임이라 + 9시간 차이가 난다. UTC 로 검색해보시면

                if (Convert.ToInt16(t_time.Substring(0, 2)) >= 9)

                    systime.wHour = (ushort)(Convert.ToInt16(t_time.Substring(0, 2)) - 9 % 24);

                else

                {

                    day_change = 1;

                    systime.wHour = (ushort)(Convert.ToInt16(t_time.Substring(0, 2)) + 15 % 24);

                }

                systime.wMinute = (ushort)Convert.ToInt16(t_time.Substring(2, 2));

                systime.wSecond = (ushort)Convert.ToInt16(t_time.Substring(4, 2));


                systime.wYear = (ushort)(Convert.ToInt16(t_date.Substring(0, 4)));

                systime.wMonth = (ushort) (Convert.ToInt16(t_date.Substring(4, 2))  ) ;

                systime.wDay = (ushort)(Convert.ToInt16(t_date.Substring(6, 2)) - day_change); // 시간이 24시가 넘어가면 day 하루 늘어나게 된다. 그래서  day_change 변수를 사용해서 하루를 빼줌.


                SetSystemTime(ref systime);

            }

            catch

            { }

        }

 


+ Recent posts