rtThanks a lot!!!

解决方案 »

  1.   

    using System.Runtime.InteropServices; //imports SetLocalTime function from kernel32.dll 
    [DllImport("kernel32.dll", SetLastError=true)]  
    public static extern int SetLocalTime (ref SystemTime lpSystemTime); //struct for date/time apis 
    public struct SystemTime 

    public short wYear; 
    public short wMonth; 
    public short wDayOfWeek; 
    public short wDay; 
    public short wHour; 
    public short wMinute; 
    public short wSecond; 
    public short wMilliseconds; 
    } // And then set up a structure with the required properties and call the api from code: SystemTime systNew = new SystemTime(); // 设置属性 
    systNew.wDay = 1; 
    systNew.wMonth = 1; 
    systNew.wYear = 2004; 
    systNew.wHour = 9; 
    systNew.wMinute = 0; 
    systNew.wSecond = 0; // 调用API,更新系统时间 
    SetLocalTime(ref systNew);
      

  2.   

    来自:http://www.pinvoke.net/default.aspx/kernel32/SetLocalTime.html    //I have added some methods to structure SYSTEMTIME. After that the convertion between System.DateTime and SYSTEM became much easier. :)
        //Sample Code in C#:    //Sample code for SetLocalTime and SYSTEMTIME structure
        //Author:    Yuan Xiaohui from www.farproc.com
        //Time :    August 30th, 2005    using System;
        using System.Runtime.InteropServices;    public class MyClass1
        {
            /// <summary>
            /// SYSTEMTIME structure with some useful methods
            /// </summary>
            public 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;            /// <summary>
                /// Convert form System.DateTime
                /// </summary>
                /// <param name="time"></param>
                public void FromDateTime(DateTime time)
                {
                    wYear = (ushort)time.Year;
                    wMonth = (ushort)time.Month;
                    wDayOfWeek = (ushort)time.DayOfWeek;
                    wDay = (ushort)time.Day;
                    wHour = (ushort)time.Hour;
                    wMinute = (ushort)time.Minute;
                    wSecond = (ushort)time.Second;
                    wMilliseconds = (ushort)time.Millisecond;
                }            /// <summary>
                /// Convert to System.DateTime
                /// </summary>
                /// <returns></returns>
                public DateTime ToDateTime()
                {
                    return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds);
                }
                /// <summary>
                /// STATIC: Convert to System.DateTime
                /// </summary>
                /// <param name="time"></param>
                /// <returns></returns>
                public static DateTime ToDateTime(SYSTEMTIME time)
                {
                    return time.ToDateTime();
                }
            }        //SetLocalTime C# Signature
            [DllImport("Kernel32.dll")]
            public static extern bool SetLocalTime( ref SYSTEMTIME Time );        //Example
            private void Add7Days        {
                //Get current time and adds 7 days to it
                DateTime t = DateTime.Now.AddDays(7);;
                //Convert to SYSTEMTIME
                SYSTEMTIME st = new SYSTEMTIME();
                st.FromDateTime(t);
                //Call Win32 API to set time
                SetLocalTime(ref st);
            }
        }