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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44
