From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs | 1132 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 764 insertions(+), 368 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
index 8a7f32d..5c95989 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
@@ -7,6 +7,7 @@
 {
     public class TimeSettignPage : DoorLockCommonLayout, ZigBee.Common.IStatus
     {
+        #region 涓婃姤鏁版嵁澶勭悊
         /// <summary>
         /// 澶勭悊鍙樺寲浜嬩欢
         /// </summary>
@@ -26,7 +27,7 @@
                             var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
                             if (tempDevice.DeviceStatusReport.CluterID == 10 && dataReport.AttributeId == 0)
                             {
-                                CurentDoorLockTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
+                                CurentDoorLockTime = DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
                                 Application.RunOnMainThread(() =>
                                 {
                                     waitGetDoorLockTime = DateTime.MaxValue;
@@ -47,7 +48,9 @@
                 }
             }
         }
+        #endregion
 
+        #region 鏋勯�犲嚱鏁�
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
@@ -57,35 +60,69 @@
             this.doorLock = doorLock;
             setTimeType = timeType;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
+            //璇婚棬閿佹椂鍖烘椂闂�
+            DoorLockCommonInfo.GetDoorLockZoneTime();
             ZigBee.Device.ZbGateway.StatusList.Add(this);
         }
+        #endregion
 
-        #region 鈼� 鍙橀噺鐢虫槑__________________________
+        #region UI鍐呭
+        #region  鍙橀噺鐢虫槑
+        /// <summary>
+        /// 褰撳墠闂ㄩ攣
+        /// </summary>
         ZigBee.Device.DoorLock doorLock;
+        /// <summary>
+        /// 璁剧疆鏃堕棿绫诲瀷
+        /// </summary>
         string setTimeType = "";
+        /// <summary>
+        /// 褰撳墠闂ㄩ攣鏃堕棿
+        /// </summary>
         DateTime CurentDoorLockTime;
+        /// <summary>
+        /// 鏄剧ず鏃ユ湡鐨勬枃鏈�
+        /// </summary>
         Button textDisplayDate;
+        /// <summary>
+        /// 鏄剧ず鏃堕棿鐨勬枃鏈�
+        /// </summary>
         Button textDisplayTime;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滃勾鈥�
+        /// </summary>
         int curYear = 0;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滄湀鈥�
+        /// </summary>
         int curMonth = 0;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滄棩鈥�
+        /// </summary>
         int curDay = 0;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滄椂鈥�
+        /// </summary>
         int curHour = 0;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滃垎鈥�
+        /// </summary>
         int curMin = 0;
+        /// <summary>
+        /// 鏈湴鍙橀噺鈥滅鈥�
+        /// </summary>
         int curSec = 0;
+        /// <summary>
+        /// 璁剧疆鏃堕棿鐨凙ction
+        /// </summary>
         public Action timeSetAction;
+        /// <summary>
+        /// 绛夊緟鑾峰彇闂ㄩ攣鏃剁殑绛夊緟鏃堕棿
+        /// </summary>
         DateTime waitGetDoorLockTime = DateTime.MaxValue;
         #endregion
 
         /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            ZbGateway.StatusList.Remove(this);
-            base.RemoveFromParent();
-        }
-
-        /// <summary>
         /// UI鏄剧ず 
         /// </summary>
         public void Show()
@@ -113,48 +150,48 @@
             MidFrameLayoutContent();
         }
 
+        /// <summary>
+        /// 涓儴甯冨眬
+        /// </summary>
         public void MidFrameLayoutContent()
         {
             if (setTimeType == "DoorLockTime")
             {
-                CommonPage.Loading.Start("");
-                // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
-                new System.Threading.Thread(() =>
-                {
-                    while (this.Parent != null)
-                    {
-                        if (DateTime.Now > waitGetDoorLockTime)
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-                                CommonPage.Loading.Hide();
-                            });
-                        }
-                        //璇婚棬閿佹椂闂�
-                        //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
-                        waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
-                        doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
-                        System.Threading.Thread.Sleep(5 * 1000);
-                    }
-                })
-                { IsBackground = true }.Start();
+                ReadDoorlockTime();
             }
 
-            var MidTopFrameLayout = new FrameLayout()
+            var zoneFrameLayout = new FrameLayout()
             {
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
             };
-            this.midFrameLayout.AddChidren(MidTopFrameLayout);
+            this.midFrameLayout.AddChidren(zoneFrameLayout);
 
-            var dtNow = DateTime.Now;
+            if (setTimeType == "DoorLockTime")
+            {
+                zoneFrameLayout.Height = Application.GetRealHeight(150) + 1;
+                AddDoorLocksTimeRow(zoneFrameLayout);
+            }
+            else
+            {
+                zoneFrameLayout.Height = Application.GetRealHeight(0);
+            }
+
+            var midTopFrameLayout = new FrameLayout()
+            {
+                Y = zoneFrameLayout.Bottom,
+            };
+            this.midFrameLayout.AddChidren(midTopFrameLayout);
+
+            var dtNow = DoorLockCommonInfo.DoorlockZoneTime;// DateTime.Now;
             for (int i = 0; i < 2; i++)
             {
+                #region MidTopFrameLayout UI
                 var rowLayout = new FrameLayout()
                 {
                     Height = Application.GetRealHeight(127 + 23),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                 };
-                MidTopFrameLayout.AddChidren(rowLayout);
+                midTopFrameLayout.AddChidren(rowLayout);
 
                 var btnDateTime = new Button()
                 {
@@ -199,8 +236,10 @@
                     X = Application.GetRealWidth(58),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
                 };
-                MidTopFrameLayout.AddChidren(btnLine);
+                midTopFrameLayout.AddChidren(btnLine);
+                #endregion
 
+                #region 鏄剧ず澶勭悊
                 if (i == 0)
                 {
                     btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
@@ -278,55 +317,501 @@
                     }
                     btnLine.Visible = false;
                 }
+                #endregion 
+
+                #region 浜嬩欢澶勭悊
                 int curIndex = i;
                 EventHandler<MouseEventArgs> hander = (sender, e) =>
                 {
-                    this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
-                    this.bottomRadiusFrameLayout.RemoveAll();
-                    this.BottomRadiusFrameLayout(this);
-                    var mUIPickerView = new UIPickerView()
+                    ClickHandle(curIndex, dtNow);
+                };
+                rowLayout.MouseDownEventHandler += hander;
+                btnDateTime.MouseDownEventHandler += hander;
+                textDisplayDateFrameLayout.MouseDownEventHandler += hander;
+                btnNextFrameLayout.MouseDownEventHandler += hander;
+                btnNext.MouseDownEventHandler += hander;
+
+                if (curIndex == 0)
+                {
+                    textDisplayDate.MouseDownEventHandler += hander;
+                }
+                else
+                {
+                    textDisplayTime.MouseDownEventHandler += hander;
+                }
+                #endregion 
+            }
+
+            btnCancel.MouseUpEventHandler += (sender1, e1) =>
+            {
+                this.shadowRadiusFrameLayout.RemoveFromParent();
+            };
+            btnFinish.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (setTimeType == "DoorLockTime")
+                {
+                    DoorLockTimeFinishHandle();
+                }
+            };
+            this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
+            {
+                this.shadowRadiusFrameLayout.RemoveFromParent();
+            };
+            if (setTimeType == "DoorLockTime")
+            {
+                if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
+                {
+                    waitGetDoorLockTime = DateTime.MaxValue;
+                    CommonPage.Loading.Hide();
+                }
+            }
+        }
+        #endregion
+
+        #region 鏃跺尯 
+        /// <summary>
+        /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級
+        /// </summary>
+        /// <param name="zoneFrameLayout"></param>
+        private void AddDoorLocksTimeRow(FrameLayout zoneFrameLayout)
+        {
+            //闂ㄩ攣鏃堕棿
+            var rowLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(150),
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+            };
+            zoneFrameLayout.AddChidren(rowLayout);
+
+            //褰撳墠鏃跺尯
+            var btnCurZone = new Button()
+            {
+                Width = Application.GetRealWidth(560),
+                Height = Application.GetRealHeight(58),
+                X = Application.GetRealWidth(58),
+                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = 12,
+                Y = Application.GetRealHeight(46),
+                Text = Language.StringByID(R.MyInternationalizationString.CurZone),
+            };
+            rowLayout.AddChidren(btnCurZone);
+
+            //鍝釜鏃跺尯
+            var textZone = new Button()
+            {
+                Width = Application.GetRealWidth(333),
+                Height = Application.GetRealHeight(58),
+                X = Application.GetRealWidth(689),
+                Y = Application.GetRealHeight(46),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray4,
+                TextSize = 14,
+            };
+
+            rowLayout.AddChidren(textZone);
+            textZone.Text = zoneData();
+            textZone.MouseDownEventHandler += (sender, e) =>
+            {
+                //1銆佸叆缃戝悗鍏堣幏鍙栭棬閿佸湪缃戝叧涓殑鏃跺尯鏃堕棿
+                var curDateTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockZoneTime();
+                //2銆佸皢鏃堕棿璁剧疆鍒扮綉鍏充腑
+                var dateTime = new DateTime(curDateTime.Year, curDateTime.Month, curDateTime.Day, curDateTime.Hour, curDateTime.Minute, curDateTime.Second);
+                var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(dateTime);
+                doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+            };
+
+            var btnLine = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(965),
+                Height = 1,
+                X = Application.GetRealWidth(58),
+                Y = Application.GetRealHeight(150),
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+            };
+            zoneFrameLayout.AddChidren(btnLine);
+        }
+
+        /// <summary>
+        /// 鏃跺尯鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        private string zoneData()
+        {
+            string zoneText = "";
+            int num = 0;
+            var gwZone = DoorLockCommonInfo.CaculateTimeZone(Common.Config.Instance.Home.Longitude);
+            if (int.Parse(gwZone) != 0)
+            {
+                num = int.Parse(gwZone.Substring(1));
+            }
+            if (gwZone.Contains('+'))
+            {
+                if (num == 0)
+                {
+                    zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
+                }
+                else
+                {
+                    zoneText = EastZoneList(num - 1);
+                }
+            }
+            else if (gwZone.Contains('-'))
+            {
+                zoneText = WestZoneList(num - 1);
+            }
+            else
+            {
+                zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
+            }
+            return zoneText;
+        }
+
+        /// <summary>
+        /// 杞崲涓滃尯
+        /// </summary>
+        /// <param name="x"></param>
+        /// <returns></returns>
+        private string EastZoneList(int x)
+        {
+            var numString = new string[]
+            {
+                Language.StringByID(R.MyInternationalizationString.CurZoneText1),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText2),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText3),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText4),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText5),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText6),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText7),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText8),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText9),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText10),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText11),
+                Language.StringByID(R.MyInternationalizationString.CurZoneText12)
+            };
+            var strChnNamesList = new List<string>(numString);
+            return strChnNamesList[x];
+        }
+
+        /// <summary>
+        /// 杞崲瑗垮尯
+        /// </summary>
+        /// <param name="x"></param>
+        /// <returns></returns>
+        private string WestZoneList(int x)
+        {
+            var numString = new string[]
+            {
+                Language.StringByID(R.MyInternationalizationString.WestZoneText1),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText2),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText3),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText4),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText5),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText6),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText7),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText8),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText9),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText10),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText11),
+                Language.StringByID(R.MyInternationalizationString.WestZoneText12)
+            };
+            var strChnNamesList = new List<string>(numString);
+            return strChnNamesList[x];
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏃跺尯
+        /// <para>currentLon:"+"涓轰笢鍖猴紝鈥�-鈥濅负瑗垮尯</para>
+        /// </summary>
+        /// <param name="currentLon"></param>
+        /// <returns></returns>
+        public static String CaculateTimeZone(double currentLon)
+        {
+            int timeZone;
+            int shangValue = (int)(currentLon / 15);
+            double yushuValue = Math.Abs(currentLon % 15);
+            if (yushuValue <= 7.5)
+            {
+                timeZone = shangValue;
+            }
+            else
+            {
+                timeZone = shangValue + (currentLon > 0 ? 1 : -1);
+            }
+            return timeZone >= 0 ? "+" + Math.Abs(timeZone) : "-" + Math.Abs(timeZone);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎵�鍦ㄦ椂鍖虹殑鏃堕棿 
+        /// </summary>
+        /// <param name="unix"></param>
+        /// <returns></returns>
+        public static int GetLocalTime(int unix)
+        {
+            var gwZone = CaculateTimeZone(Common.Config.Instance.Home.Longitude);
+            var data = unix + 8 * 3600;
+
+            return data;
+        }
+
+        #endregion
+
+        #region 闂ㄩ攣鏃堕棿
+        /// <summary>
+        /// 璇诲彇闂ㄩ攣鏃堕棿
+        /// </summary>
+        private void ReadDoorlockTime()
+        {
+            CommonPage.Loading.Start("");
+            // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
+            new System.Threading.Thread(() =>
+            {
+                while (this.Parent != null)
+                {
+                    if (DateTime.Now > waitGetDoorLockTime)
                     {
-                        X = Application.GetRealWidth(0),
-                        Height = Application.GetRealHeight(440),
-                    };
-                    this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                            CommonPage.Loading.Hide();
+                        });
+                    }
+                    //璇婚棬閿佹椂闂�
+                    //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
+                    waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
+                    doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+                    System.Threading.Thread.Sleep(5 * 1000);
+                }
+            })
+            { IsBackground = true }.Start();
+        }
 
-                    if (curIndex == 0)
+        /// <summary>
+        /// 闂ㄩ攣鏃堕棿纭鎸夐挳澶勭悊 
+        /// </summary>
+        private void DoorLockTimeFinishHandle()
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
+                    var setTimestamp = DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
+                    Application.RunOnMainThread(() =>
                     {
-                        //鏃ユ湡
-                        if (setTimeType != "DoorLockTime")
+                        CommonPage.Loading.Start("");
+                    });
+                    var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+                    if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
+                    {
+                        Application.RunOnMainThread(() =>
                         {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
-                        }
-                        else
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
-                        }
-
-                        mUIPickerView.Y = Application.GetRealWidth(245);
-                        var mList1 = new List<string>();
-                        var mList2 = new List<string>();
-                        var mList3 = new List<string>();
-                        var oldMonth = dtNow.Month;
-
-                        int year = dtNow.Year + 1;
-                        int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
-
-                        for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
-                        {
-                            mList1.Add(y.ToString());
-                        }
-                        for (int m = 1; m < 13; m++)
-                        {
-                            if (Language.CurrentLanguage == "Chinese")
+                            if (rectifyResult.setWritableValueResponData.Status == 0)
                             {
-                                mList2.Add(m.ToString() + "鏈�");
+                                doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+                                System.Threading.Thread.Sleep(1000);
+                                this.shadowRadiusFrameLayout.RemoveFromParent();
                             }
                             else
                             {
-                                mList2.Add(m.ToString());
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
                             }
+                        });
+                    }
+                    else
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                        });
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
+                }
+            });
+
+        }
+        #endregion
+
+        #region 鍏叡浜嬩欢澶勭悊 
+        /// <summary>
+        /// 浜嬩欢澶勭悊 
+        /// </summary>
+        private void ClickHandle(int curIndex, DateTime dtNow)
+        {
+            this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
+            this.bottomRadiusFrameLayout.RemoveAll();
+            this.BottomRadiusFrameLayout(this);
+            var mUIPickerView = new UIPickerView()
+            {
+                X = Application.GetRealWidth(0),
+                Height = Application.GetRealHeight(440),
+            };
+            this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
+
+            if (curIndex == 0)
+            {
+                //鏃ユ湡
+                if (setTimeType != "DoorLockTime")
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
+                }
+                else
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
+                }
+
+                mUIPickerView.Y = Application.GetRealWidth(245);
+                var mList1 = new List<string>();
+                var mList2 = new List<string>();
+                var mList3 = new List<string>();
+                var oldMonth = dtNow.Month;
+
+                int year = dtNow.Year + 1;
+                int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
+
+                for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
+                {
+                    mList1.Add(y.ToString());
+                }
+                for (int m = 1; m < 13; m++)
+                {
+                    if (Language.CurrentLanguage == "Chinese")
+                    {
+                        mList2.Add(m.ToString() + "鏈�");
+                    }
+                    else
+                    {
+                        mList2.Add(m.ToString());
+                    }
+                }
+                for (int d = 1; d < days + 1; d++)
+                {
+                    if (Language.CurrentLanguage == "Chinese")
+                    {
+                        mList3.Add(d.ToString() + "鏃�");
+                    }
+                    else
+                    {
+                        mList3.Add(d.ToString());
+                    }
+                }
+
+                if (setTimeType != "DoorLockTime")
+                {
+                    mUIPickerView.setNPicker(mList2, mList3, null);
+                    mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+
+                    if (setTimeType == "ValidTime")
+                    {
+                        DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+                        DoorLockCommonInfo.ValidDateMonth = curMonth;
+                        DoorLockCommonInfo.ValidDateDay = curDay;
+                    }
+                    else
+                    {
+                        DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+                        DoorLockCommonInfo.InValidDateMonth = curMonth;
+                        DoorLockCommonInfo.InValidDateDay = curDay;
+                    }
+                    var btnOk = new Button
+                    {
+                        X = Application.GetRealWidth(919),
+                        Y = Application.GetRealHeight(40),
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(101),
+                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
+                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+                        TextSize = 14,
+                    };
+                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
+                    btnOk.MouseUpEventHandler += (sender1, e1) =>
+                    {
+                        if (setTimeType == "ValidTime")
+                        {
+                            string nowValue1 = DateTime.Now.ToString("yyyyMMdd");
+                            string nowValue2 = dtNow.Year.ToString() + curMonth.ToString().PadLeft(2, '0') + curDay.ToString().PadLeft(2, '0');
+                            if (nowValue1.CompareTo(nowValue2) == 1)
+                            {
+                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoLessThanCurrentTime);
+                                this.ShowMassage(ShowMsgType.Error, mess);
+                                return;
+                            }
+                            //妫�鏌ユ椂闂�
+                            var flage = this.CheckValidTime(dtNow.Year, curMonth, curDay,
+                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+                            if (flage == false)
+                            {
+                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
+                                this.ShowMassage(ShowMsgType.Error, mess);
+                                return;
+                            }
+                            DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+                            DoorLockCommonInfo.ValidDateMonth = curMonth;
+                            DoorLockCommonInfo.ValidDateDay = curDay;
                         }
+                        else
+                        {
+                            //妫�鏌ユ椂闂�
+                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                                dtNow.Year, curMonth, curDay,
+                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+                            if (flage == false)
+                            {
+                                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
+                                this.ShowMassage(ShowMsgType.Error, mess);
+                                return;
+                            }
+
+                            DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+                            DoorLockCommonInfo.InValidDateMonth = curMonth;
+                            DoorLockCommonInfo.InValidDateDay = curDay;
+                        }
+                        if (timeSetAction != null)
+                        {
+                            timeSetAction();
+                        }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
+                        MidFrameLayoutContent();
+                    };
+                }
+                else
+                {
+                    mUIPickerView.setNPicker(mList1, mList2, mList3);
+                    mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
+                    curYear = dtNow.Year;
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+                    if (CurentDoorLockTime != null)
+                    {
+                        curHour = CurentDoorLockTime.Hour;
+                        curMin = CurentDoorLockTime.Minute;
+                        curSec = CurentDoorLockTime.Second;
+                    }
+                    else
+                    {
+                        curHour = dtNow.Hour;
+                        curMin = dtNow.Minute;
+                        curSec = dtNow.Second;
+                    }
+                }
+
+                Action dAction = () =>
+                {
+                    if (curMonth != oldMonth)
+                    {
+                        oldMonth = curMonth;
+                        days = DateTime.DaysInMonth(curYear, curMonth);
+                        mList3.Clear();
+
                         for (int d = 1; d < days + 1; d++)
                         {
                             if (Language.CurrentLanguage == "Chinese")
@@ -342,327 +827,238 @@
                         if (setTimeType != "DoorLockTime")
                         {
                             mUIPickerView.setNPicker(mList2, mList3, null);
-                            mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-
-                            if (setTimeType == "ValidTime")
-                            {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = curMonth;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = curDay;
-                            }
-                            else
-                            {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = curMonth;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = curDay;
-                            }
-                            var btnOk = new Button
-                            {
-                                X = Application.GetRealWidth(919),
-                                Y = Application.GetRealHeight(40),
-                                Height = Application.GetRealHeight(58),
-                                Width = Application.GetRealWidth(101),
-                                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                                TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                                TextSize = 14,
-                            };
-                            this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                            btnOk.MouseUpEventHandler += (sender1, e1) =>
-                            {
-                                if (setTimeType == "ValidTime")
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = curMonth;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = curDay;
-                                }
-                                else
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = curMonth;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = curDay;
-                                }
-                                if (timeSetAction != null)
-                                {
-                                    timeSetAction();
-                                }
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
-                                MidFrameLayoutContent();
-                            };
+                            mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
                         }
                         else
                         {
                             mUIPickerView.setNPicker(mList1, mList2, mList3);
-                            mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
-                            curYear = dtNow.Year;
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-                            if (CurentDoorLockTime != null)
-                            {
-                                curHour = CurentDoorLockTime.Hour;
-                                curMin = CurentDoorLockTime.Minute;
-                                curSec = CurentDoorLockTime.Second;
-                            }
-                            else
-                            {
-                                curHour = dtNow.Hour;
-                                curMin = dtNow.Minute;
-                                curSec = dtNow.Second;
-                            }
-                        }
-
-                        Action dAction = () =>
-                        {
-                            if (curMonth != oldMonth)
-                            {
-                                oldMonth = curMonth;
-                                days = DateTime.DaysInMonth(curYear, curMonth);
-                                mList3.Clear();
-
-                                for (int d = 1; d < days + 1; d++)
-                                {
-                                    if (Language.CurrentLanguage == "Chinese")
-                                    {
-                                        mList3.Add(d.ToString() + "鏃�");
-                                    }
-                                    else
-                                    {
-                                        mList3.Add(d.ToString());
-                                    }
-                                }
-
-                                if (setTimeType != "DoorLockTime")
-                                {
-                                    mUIPickerView.setNPicker(mList2, mList3, null);
-                                    mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
-                                }
-                                else
-                                {
-                                    mUIPickerView.setNPicker(mList1, mList2, mList3);
-                                    mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
-                                }
-                            }
-                        };
-                        mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
-                        {
-                            if (setTimeType != "DoorLockTime")
-                            {
-                                curYear = dtNow.Year;
-                                curMonth = y + 1;
-                                curDay = m + 1;
-                            }
-                            else
-                            {
-                                curYear = y + 2009;
-                                curMonth = m + 1;
-                                curDay = d + 1;
-                            }
-                            dAction();
-                        };
-                    }
-                    if (curIndex == 1)
-                    {
-                        //鏃堕棿
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
-                        }
-                        else
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
-                        }
-
-                        mUIPickerView.Y = Application.GetRealWidth(245);
-                        var mList1 = new List<string>();
-                        var mList2 = new List<string>();
-                        for (int h = 0; h < 24; h++)
-                        {
-                            if (h < 10)
-                            {
-                                mList1.Add("0" + h.ToString());
-                            }
-                            else
-                            {
-                                mList1.Add(h.ToString());
-                            }
-                        }
-                        for (int m = 0; m < 60; m++)
-                        {
-                            if (m < 10)
-                            {
-                                mList2.Add("0" + m.ToString());
-                            }
-                            else
-                            {
-                                mList2.Add(m.ToString());
-                            }
-                        }
-                        mUIPickerView.setNPicker(mList1, mList2, null);
-                        mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
-                        if (CurentDoorLockTime != null)
-                        {
-                            curYear = CurentDoorLockTime.Year;
-                            curMonth = CurentDoorLockTime.Month;
-                            curDay = CurentDoorLockTime.Day;
-                        }
-                        else
-                        {
-                            curYear = dtNow.Year;
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-                        }
-                        curHour = dtNow.Hour;
-                        curMin = dtNow.Minute;
-                        curSec = dtNow.Second;
-                        mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
-                        {
-                            curHour = h;
-                            curMin = m;
-                            curSec = dtNow.Second;
-                        };
-
-                        if (setTimeType == "ValidTime")
-                        {
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
-                        }
-                        else
-                        {
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
-                        }
-
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            var btnOk = new Button
-                            {
-                                X = Application.GetRealWidth(919),
-                                Y = Application.GetRealHeight(40),
-                                Height = Application.GetRealHeight(58),
-                                Width = Application.GetRealWidth(101),
-                                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                                TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                                TextSize = 14,
-                            };
-                            this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                            btnOk.MouseUpEventHandler += (sender1, e1) =>
-                            {
-                                if (setTimeType == "ValidTime")
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
-                                }
-                                else
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
-                                }
-                                if (timeSetAction != null)
-                                {
-                                    timeSetAction();
-                                }
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
-                                MidFrameLayoutContent();
-                            };
+                            mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
                         }
                     }
                 };
-                rowLayout.MouseDownEventHandler += hander;
-                btnDateTime.MouseDownEventHandler += hander;
-                textDisplayDateFrameLayout.MouseDownEventHandler += hander;
-                btnNextFrameLayout.MouseDownEventHandler += hander;
-                btnNext.MouseDownEventHandler += hander;
-                if (curIndex == 0)
+                mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
                 {
-                    textDisplayDate.MouseDownEventHandler += hander;
+                    if (setTimeType != "DoorLockTime")
+                    {
+                        curYear = dtNow.Year;
+                        curMonth = y + 1;
+                        curDay = m + 1;
+                    }
+                    else
+                    {
+                        switch (y)
+                        {
+                            case 0:
+                                curYear = dtNow.Year - 9;
+                                break;
+                            case 1:
+                                curYear = dtNow.Year - 8;
+                                break;
+                            case 2:
+                                curYear = dtNow.Year - 7;
+                                break;
+                            case 3:
+                                curYear = dtNow.Year - 6;
+                                break;
+                            case 4:
+                                curYear = dtNow.Year - 5;
+                                break;
+                            case 5:
+                                curYear = dtNow.Year - 4;
+                                break;
+                            case 6:
+                                curYear = dtNow.Year - 3;
+                                break;
+                            case 7:
+                                curYear = dtNow.Year - 2;
+                                break;
+                            case 8:
+                                curYear = dtNow.Year - 1;
+                                break;
+                            default:
+                                curYear = dtNow.Year;
+                                break;
+                        }
+                        curMonth = m + 1;
+                        curDay = d + 1;
+                    }
+                    dAction();
+                };
+            }
+            if (curIndex == 1)
+            {
+                //鏃堕棿
+                if (setTimeType != "DoorLockTime")
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
                 }
                 else
                 {
-                    textDisplayTime.MouseDownEventHandler += hander;
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
                 }
-            }
 
-            btnCancel.MouseUpEventHandler += (sender1, e1) =>
-            {
-                this.shadowRadiusFrameLayout.RemoveFromParent();
-            };
-            btnFinish.MouseUpEventHandler += async (sender1, e1) =>
-            {
-                if (setTimeType == "DoorLockTime")
+                mUIPickerView.Y = Application.GetRealWidth(245);
+                var mList1 = new List<string>();
+                var mList2 = new List<string>();
+                for (int h = 0; h < 24; h++)
                 {
-                    var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
-                    var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
-                    try
+                    if (h < 10)
                     {
-                        CommonPage.Loading.Start("");
-                        var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
-                        if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
-                        {
-                            if (rectifyResult.setWritableValueResponData.Status == 0)
-                            {
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
+                        mList1.Add("0" + h.ToString());
+                    }
+                    else
+                    {
+                        mList1.Add(h.ToString());
+                    }
+                }
+                for (int m = 0; m < 60; m++)
+                {
+                    if (m < 10)
+                    {
+                        mList2.Add("0" + m.ToString());
+                    }
+                    else
+                    {
+                        mList2.Add(m.ToString());
+                    }
+                }
+                mUIPickerView.setNPicker(mList1, mList2, null);
+                mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
+                if (CurentDoorLockTime != null)
+                {
+                    curYear = CurentDoorLockTime.Year;
+                    curMonth = CurentDoorLockTime.Month;
+                    curDay = CurentDoorLockTime.Day;
+                }
+                else
+                {
+                    curYear = dtNow.Year;
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+                }
+                curHour = dtNow.Hour;
+                curMin = dtNow.Minute;
+                curSec = dtNow.Second;
+                mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
+                {
+                    curHour = h;
+                    curMin = m;
+                    curSec = dtNow.Second;
+                };
+
+                if (setTimeType == "ValidTime")
+                {
+                    DoorLockCommonInfo.ValidDateHour = curHour;
+                    DoorLockCommonInfo.ValidDateMinute = curMin;
+                    DoorLockCommonInfo.ValidDateSecond = curSec;
+                }
+                else
+                {
+                    DoorLockCommonInfo.InValidDateHour = curHour;
+                    DoorLockCommonInfo.InValidDateMinute = curMin;
+                    DoorLockCommonInfo.InValidDateSecond = curSec;
+                }
+
+                if (setTimeType != "DoorLockTime")
+                {
+                    var btnOk = new Button
+                    {
+                        X = Application.GetRealWidth(919),
+                        Y = Application.GetRealHeight(40),
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(101),
+                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
+                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+                        TextSize = 14,
+                    };
+                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
+                    btnOk.MouseUpEventHandler += (sender1, e1) =>
+                    {
+                        if (setTimeType == "ValidTime")
+                        {
+                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                                curHour, curMin, curSec,
+                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+                            if (flage == false)
+                            {
+                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
+                                this.ShowMassage(ShowMsgType.Error, mess);
+                                return;
                             }
-                            else
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                            }
+
+                            DoorLockCommonInfo.ValidDateHour = curHour;
+                            DoorLockCommonInfo.ValidDateMinute = curMin;
+                            DoorLockCommonInfo.ValidDateSecond = curSec;
                         }
                         else
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                        }
-                    }
-                    catch { }
-                    finally
-                    {
-                        System.Threading.Thread.Sleep(3000);
-                        CommonPage.Loading.Hide();
-                    }
-                }
-            };
-            this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
-            {
-                this.shadowRadiusFrameLayout.RemoveFromParent();
-            };
+                        {
+                            //妫�鏌ユ椂闂�
+                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                                curHour, curMin, curSec);
+                            if (flage == false)
+                            {
+                                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
+                                this.ShowMassage(ShowMsgType.Error, mess);
+                                return;
+                            }
 
-            if (setTimeType == "DoorLockTime")
-            {
-                if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
-                {
-                    waitGetDoorLockTime = DateTime.MaxValue;
-                    CommonPage.Loading.Hide();
+                            DoorLockCommonInfo.InValidDateHour = curHour;
+                            DoorLockCommonInfo.InValidDateMinute = curMin;
+                            DoorLockCommonInfo.InValidDateSecond = curSec;
+                        }
+                        if (timeSetAction != null)
+                        {
+                            timeSetAction();
+                        }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
+                        MidFrameLayoutContent();
+                    };
                 }
             }
         }
 
-        #region 鈼� 鎺ュ彛瀹炵幇__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
+        /// <summary>
+        /// 妫�鏌ユ椂闂�
+        /// </summary>
+        /// <returns></returns>
+        private bool CheckValidTime(int validYear, int validMoth, int validDay, int validHour, int validMinute, int validSecond
+            , int inValidYear, int inValidMoth, int inValidDay, int inValidHour, int inValidMinute, int inValidSecond)
+        {
+            //鐢熸晥鏃堕棿
+            string nowValue1 = validYear.ToString()
+            + validMoth.ToString().PadLeft(2, '0')
+            + validDay.ToString().PadLeft(2, '0')
+            + validHour.ToString().PadLeft(2, '0')
+            + validMinute.ToString().PadLeft(2, '0')
+            + validSecond.ToString().PadLeft(2, '0');
+            //澶辨晥鏃堕棿
+            string nowValue2 = inValidYear.ToString()
+            + inValidMoth.ToString().PadLeft(2, '0')
+            + inValidDay.ToString().PadLeft(2, '0')
+            + inValidHour.ToString().PadLeft(2, '0')
+            + inValidMinute.ToString().PadLeft(2, '0')
+            + inValidSecond.ToString().PadLeft(2, '0');
+            var aaaa = nowValue1.CompareTo(nowValue2);
+            if (nowValue1.CompareTo(nowValue2) == 1)
+            {
+                return false;
+            }
+            return true;
+        }
 
-        }
+        #endregion
+
+        #region 绉婚櫎鏂规硶
         /// <summary>
-        /// Changeds the IL ogic status.
+        /// 閲嶅啓绉婚櫎鏂规硶
         /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
+        public override void RemoveFromParent()
         {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
+            ZbGateway.StatusList.Remove(this);
+            base.RemoveFromParent();
         }
         #endregion
     }

--
Gitblit v1.8.0