//////?設(shè)置本機(jī)時(shí)間?
///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;
???}
???//////?設(shè)置本機(jī)時(shí)間?
???///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);
??????
??????//處理北京時(shí)間?
??????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);//設(shè)置本機(jī)時(shí)間?
???}
}
//////?同步服務(wù)器時(shí)間?
///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);?
???
???//比較時(shí)間一致性?
???if?(ConvertEx.ToCharYYYYMMDDHHMM(DateTime.Now)?!=?ConvertEx.ToCharYYYYMMDDHHMM(dt))
???LocalTimeSync.SyncTime(dt);//同步服務(wù)器的時(shí)間?
}