zoukankan      html  css  js  c++  java
  • C# 同步工作站与SQL服务器的时间

    /// <summary> 
    /// 设置本机时间 
    /// </summary> 
    public class LocalTimeSync
    {
       [DllImport("Kernel32.dll")]
       public static extern bool SetSystemTime(ref SystemTime sysTime);
       
       [DllImport("Kernel32.dll")]
       public static extern void GetSystemTime(ref SystemTime sysTime);
       
       [StructLayout(LayoutKind.Sequential)]
       public struct SystemTime
       {
          public ushort wYear;
          public ushort wMonth;
          public ushort wDayOfWeek;
          public ushort wDay;
          public ushort wHour;
          public ushort wMinute;
          public ushort wSecond;
          public ushort wMiliseconds;
       }
       /// <summary> 
       /// 设置本机时间 
       /// </summary> 
       public static void SyncTime(DateTime currentTime)
       {
          SystemTime sysTime = new SystemTime();
          sysTime.wYear = Convert.ToUInt16(currentTime.Year);
          sysTime.wMonth = Convert.ToUInt16(currentTime.Month);
          sysTime.wDay = Convert.ToUInt16(currentTime.Day);
          sysTime.wDayOfWeek = Convert.ToUInt16(currentTime.DayOfWeek);
          sysTime.wMinute = Convert.ToUInt16(currentTime.Minute);
          sysTime.wSecond = Convert.ToUInt16(currentTime.Second);
          sysTime.wMiliseconds = Convert.ToUInt16(currentTime.Millisecond);
          
          //处理北京时间 
          int nBeijingHour = currentTime.Hour - 8;
          if (nBeijingHour <= 0)
          {
             nBeijingHour = 24;
             sysTime.wDay = Convert.ToUInt16(currentTime.Day - 1);
             //sysTime.wDayOfWeek = Convert.ToUInt16(current.DayOfWeek - 1); 
          }
          else
          {
             sysTime.wDay = Convert.ToUInt16(currentTime.Day);
             sysTime.wDayOfWeek = Convert.ToUInt16(currentTime.DayOfWeek);
          }
          sysTime.wHour = Convert.ToUInt16(nBeijingHour);
          
          SetSystemTime(ref sysTime);//设置本机时间 
       }
    }


    /// <summary> 
    /// 同步服务器时间 
    /// </summary> 
    public void SyncServerTime()
    {
       string sql = "SELECT GETDATE()";
       object o = DataProvider.Instance.ExecuteScalar(Globals.DEF_ATTEND_SYSTEM_DB, sql);
       DateTime dt = ConvertEx.ToDateTimeEx(o);
       //LocalTimeSync.SyncTime(dt); 
       
       //比较时间一致性 
       if (ConvertEx.ToCharYYYYMMDDHHMM(DateTime.Now) != ConvertEx.ToCharYYYYMMDDHHMM(dt))
       LocalTimeSync.SyncTime(dt);//同步服务器的时间 
    }


  • 相关阅读:
    C++11 二叉堆
    OpenCV --- 实现两幅图像并排合并(ROI)
    OpenCV --- 修改图像的对比度、亮度 、RGB转Gray图像、修改图像的尺寸
    Opencv --- 图像像素遍历的各种方法
    Ubuntu系统的安装(虚拟机) 并配置C/C++编译器
    在Ubuntu下编译安装nginx
    【OpenCV3】threshold()函数详解
    MFC 剪切板的使用、线程介绍
    C++基础知识 基类指针、虚函数、多态性、纯虚函数、虚析构
    【OpenCV3】cvRound()、cvFloor()、cvCeil()函数详解
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594775.html
Copyright © 2011-2022 走看看