コード例 #1
0
        /// <summary>
        /// Retrieves the current system time.
        /// </summary>
        /// <returns>The current system time.</returns>
        public static DateTime GetSystemTime()
        {
            WindowsAPI.SYSTEMTIME systemTime = new WindowsAPI.SYSTEMTIME();
            WindowsAPI.GetSystemTime(ref systemTime);

            DateTime systemDateTime = new DateTime(
                systemTime.wYear, systemTime.wMonth, systemTime.wDay,
                systemTime.wHour, systemTime.wMinute, systemTime.wSecond, systemTime.wMilliseconds
                );

            return(systemDateTime);
        }
コード例 #2
0
        /// <summary>
        /// Sets the system time.
        /// </summary>
        /// <param name="dateTime">The date and time to set the system clock to.</param>
        public static void SetSystemTime(DateTime dateTime)
        {
            WindowsAPI.SYSTEMTIME systemTime = new WindowsAPI.SYSTEMTIME();

            systemTime.wYear  = (short)dateTime.Year;
            systemTime.wMonth = (short)dateTime.Month;
            // wDayOfWeek is ignored by SetSystemTime
            systemTime.wDay          = (short)dateTime.Day;
            systemTime.wHour         = (short)dateTime.Hour;
            systemTime.wMinute       = (short)dateTime.Minute;
            systemTime.wSecond       = (short)dateTime.Second;
            systemTime.wMilliseconds = (short)dateTime.Millisecond;

            bool setSucceeded = WindowsAPI.SetSystemTime(ref systemTime);

            if (!setSucceeded)
            {
                throw new SystemTimeException(WindowsAPI.GetLastError());
            }
        }