Изменение системного времени - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет , есть лабораторная работа "Составить описание класса для представления времени. Предусмотреть возможности установки времени и изменения его отдельных полей (час, минута, секунда) с проверкой допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Создать методы изменения времен на заданное количество часов, минут и секунд. Написать программу, демонстрирующую все разработанные элементы класса." Не могу найти как изменить системное время на c#, был один полурабочий код , который изменял время но всегда на одно и то же, не важно что вводилось. вот он
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace ConsoleApplication8
{
    class Program
    {
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEMTIME
        {
            public short wYear;
            public short wMonth;
            public short wDayOfWeek;
            public short wDay;
            public short wHour;
            public short wMinute;
            public short wSecond;
            public short wMilliseconds;
        }
 
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool SetSystemTime(ref SYSTEMTIME time);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool GetSystemTime(ref SYSTEMTIME time);
        static void Main(string[] args)
        {
            SYSTEMTIME st = new SYSTEMTIME();
            st.wYear = 2013;
            st.wMonth = 8;
            st.wDay = 22;
            st.wHour = 23;
            st.wMinute = 0;
            st.wSecond = 0;
 
            SetSystemTime(ref st);
            Console.ReadKey();
        }

    }
}

Решение задачи: «Изменение системного времени»

textual
Листинг программы
using System;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
 
namespace ex
{
    
 
    class myclass
    {
       
    
        private struct SYSTEMTIME
        {
            public short Year;
            public short Month;
            public short DayOfWeek;
            public short Day;
            public short Hour;
            public short Minute;
            public short Second;
            public short Milliseconds;
        }
 
[DllImport("kernel32.dll", SetLastError = true)]
        private static extern bool SetSystemTime([In] ref SYSTEMTIME st);
        static void Main()
        {
            DateTime tmp=DateTime.Now;
            DateTime idag = tmp.AddHours(1).AddMinutes(2).ToUniversalTime().AddYears(3);
            SYSTEMTIME s = new SYSTEMTIME();
            s.Year = (short)idag.Year;
            s.Month = (short)idag.Month;
            s.DayOfWeek = (short)idag.DayOfWeek;
            s.Day = (short)idag.Day;
            s.Hour = (short)idag.Hour;
            s.Minute = (short)idag.Minute;
            s.Second = (short)idag.Second;
            s.Milliseconds = (short)idag.Millisecond;
            SetSystemTime(ref s);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы