[StructLayout(LayoutKind.Sequential)]
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 wMiliseconds;
}
[DllImport("Kernel32.dll")]
public static extern bool SetSystemTime(ref SystemTime sysTime);
[DllImport("Kernel32.dll")]
public static extern void GetSystemTime(ref SystemTime sysTime);
public static void Set(DateTime dateTime)
{
DateTime dtUnivr = dateTime.ToUniversalTime();
SystemTime sysTime = new SystemTime();
sysTime.wYear = (ushort)dtUnivr.Year;
sysTime.wMonth = (ushort)dtUnivr.Month;
sysTime.wDay = (ushort)dtUnivr.Day;
sysTime.wHour = (ushort)dtUnivr.Hour;
sysTime.wMinute = (ushort)dtUnivr.Minute;
sysTime.wSecond = (ushort)dtUnivr.Second;
sysTime.wMiliseconds = (ushort)dtUnivr.Millisecond;
SetSystemTime(ref sysTime);
}
public static void Set(int Year, int Month, int Day, int Hour, int Minute, int Second)
{
Set(new DateTime(Year, Month, Day, Hour, Minute, Second));
}