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


  • 相关阅读:
    《Effective Java》读书笔记八(异常)
    《Effective Java》读书笔记七(通用程序设计)
    《Effective Java》读书笔记六(方法)
    《Effective Java》读书笔记五(枚举和注解)
    《Effective Java》读书笔记四(泛型)
    《Effective Java》读书笔记三(类和接口)
    《Effective Java》读书笔记二(通用方法)
    AngularJS的directive(指令)配置选项说明
    angularJS常见问题汇总
    angular指令中,require和transclude同时设置为true时的作用
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594775.html
Copyright © 2020-2023  润新知