Изменение системного времени - 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);
}
}
}