/* * 事件处理 */ private void buttonConfirm_Click(object sender, EventArgs e) { switch (StateCurrent) { case STATE_IDLE: { MessageBox.Show("应用程序尚未准备好,请稍等"); break; } case STATE_PROCESSING: { MessageBox.Show("正在获取网络时间,请稍等"); break; } case STATE_SUCCESS: { if (MyNetworkTime.HasValue) { int year = MyNetworkTime.Value.Year; int month = MyNetworkTime.Value.Month; int day = MyNetworkTime.Value.Day; int hour = MyNetworkTime.Value.Hour; int minute = MyNetworkTime.Value.Minute; int second = MyNetworkTime.Value.Second; SetSystemDateTime.SetLocalTimeByStr(MyNetworkTime.ToString()); Environment.Exit(0); } else { MessageBox.Show("网络时间为空,请退出重试"); } break; } case STATE_FAIL: { InitNetworkTime(); break; } default: { MessageBox.Show("未知状态,请退出重试"); break; } } }
public static bool SetLocalTimeByStr(string timestr) { bool flag = false; SystemTime sysTime = new SystemTime(); DateTime dt = Convert.ToDateTime(timestr); sysTime.wYear = Convert.ToUInt16(dt.Year); sysTime.wMonth = Convert.ToUInt16(dt.Month); sysTime.wDay = Convert.ToUInt16(dt.Day); sysTime.wHour = Convert.ToUInt16(dt.Hour); sysTime.wMinute = Convert.ToUInt16(dt.Minute); sysTime.wSecond = Convert.ToUInt16(dt.Second); try { flag = SetSystemDateTime.SetLocalTime(ref sysTime); } catch (Exception e) { Console.WriteLine("SetSystemDateTime函数执行异常" + e.Message); } return(flag); }