1/**//// <summary>
2 ///系統時間類
3 /// </summary>
4 [ StructLayout( LayoutKind.Sequential )]
5 public class SystemTime
6 {
7 public ushort year;
8 public ushort month;
9 public ushort dayofweek;
10 public ushort day;
11 public ushort hour;
12 public ushort minute;
13 public ushort second;
14 public ushort milliseconds;
15 }
16
17 /**//// <summary>
18 /// Windows API方法
19 /// </summary>
20 public class WinAPI
21 {
22 [ DllImport( "Kernel32.dll" )]
23 private static extern Boolean SetSystemTime([In,Out] SystemTime st);
24
25 /**//// <summary>
26 /// 設定系統時間
27 /// </summary>
28 /// <param name="newdatetime">新時間</param>
29 /// <returns></returns>
30 public static bool SetSysTime(DateTime newdatetime)
31 {
32 SystemTime st = new SystemTime();
33 st.year = Convert.ToUInt16(newdatetime.Year);
34 st.month = Convert.ToUInt16(newdatetime.Month);
35 st.day = Convert.ToUInt16(newdatetime.Day);
36 st.dayofweek = Convert.ToUInt16(newdatetime.DayOfWeek);
37 st.hour = Convert.ToUInt16(newdatetime.Hour - TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime(2001,09,01)).Hours);
38 st.minute = Convert.ToUInt16(newdatetime.Minute);
39 st.second = Convert.ToUInt16(newdatetime.Second);
40 st.milliseconds = Convert.ToUInt16(newdatetime.Millisecond);
41 return SetSystemTime(st);
42 }
43 }
44