如何为datetime添加更多时间。现在解析它然后重置回原来的datetime.now?

时间:2013-09-27 12:43:15

标签: c# .net winforms

这是Form1中的代码:

private DateTime dt;
        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern bool SetLocalTime(ref SYSTEMTIME lpSystemTime);

        [StructLayout(LayoutKind.Sequential)]
        internal struct SYSTEMTIME
        {
            public ushort wYear;
            public ushort wMonth;
            public ushort wDayOfWeek;    // ignored for the SetLocalTime function
            public ushort wDay;
            public ushort wHour;
            public ushort wMinute;
            public ushort wSecond;
            public ushort wMilliseconds;
        }

        private NotifyIcon notifyIcon1;

        public Form1()
        {
            InitializeComponent();

            notifyIcon1 = new NotifyIcon();
            SetBalloonTip();
            dt = GetNetworkTime();
            SYSTEMTIME time = new SYSTEMTIME();
            time.wDay = 1;
            time.wMonth = 5;
            time.wYear = 2011;
            time.wHour = 12;
            time.wMinute = 15;

            if (!SetLocalTime(ref time))
            {
                // The native function call failed, so throw an exception
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
        }

GetNetworkTime()返回当前实时。 我想做的是拿dt时间,例如在另一天添加它。

time.wDay = 1;
time.wMonth = 5;
time.wYear = 2011;
time.wHour = 12;
time.wMinute = 15;

所以最后变量时间会在第二天返回日期和时间,而不是5/1/2011 12:15 PM

如果现在的时间和日期是:9/27/2013 3:39 PM 所以现在我希望它是9/28/2013 4:39 PM

每次添加另一天和另一小时到当前时间!

然后我要等待5分钟,然后将时间重置为原始时间自动。

我稍后会使用按钮点击事件来使其每次点击以添加到当前时间的一天和一小时,然后计时器等待5分钟并将其重置回原始时间。

我该怎么办?我需要以某种方式解析dt变量并添加一天一小时并使用SYSTEMTIME将其设置为当前日期和时间,然后再次获取当前日期和时间解析它并在5分钟后设置它。

1 个答案:

答案 0 :(得分:4)

dt = GetNetworkTime().AddDays(1);