当前位置:首页 > 芯闻号 > 充电吧
[导读]////// 设置本机时间  ///public class LocalTimeSync {    [DllImport("Kernel32.dll")]    public static exter

////// 设置本机时间 
///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;
   }
   ////// 设置本机时间 
   ///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);//设置本机时间 
   }
}



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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭