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);//同步服务器的时间 
    }


  • 相关阅读:
    linux服务器时间同步
    07_DICTIONARY_ACCESSIBILITY
    Oracle监听静态注册和动态注册
    Oracle安装基本步骤
    笔试面试(2)阿里巴巴2014秋季校园招聘-软件研发工程师笔试题详解
    Global and Local Coordinate Systems
    齐次坐标(Homogeneous Coordinates)
    朴素贝叶斯分类器的应用
    图像数据到网格数据-1——MarchingCubes算法
    PCL源码剖析之MarchingCubes算法
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594775.html
Copyright © 2011-2022 走看看