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
/// <summary>2
///系统时间类3
/// </summary>4
[ StructLayout( LayoutKind.Sequential )]5
public class SystemTime6
{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 WinAPI21
{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


