陈嘉乐
2020-05-18 796c8eef0f690d0d04e14db1ecd3d365ed604017
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -31,6 +31,11 @@
        /// 记录选中时间
        /// </summary>
        public int timeValue = 0;
        /// <summary>
        /// 时间戳
        /// </summary>
        public int timeLong = 0;
        public async void Show()
        {
           
@@ -73,6 +78,8 @@
                        //进来更新一次值
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
                    catch { }
                }
@@ -306,15 +313,16 @@
                if (logicId != 0)
                {
                    openModeFl.AddChidren(timeTextBtn);
                    var datetime = GetLocalTime(timeLong);
                    ///有时效性常开才显示时间条件文本
                    var y = DateTime.Now.Year.ToString();//那一年
                    var m = DateTime.Now.Month.ToString();//那一月
                    var d = DateTime.Now.ToString("dd");//那一天
                    var h = int.Parse(DateTime.Now.ToString("HH"));//小时
                    int dayInt = (h + timeValue) / 24;//算出几天后执行
                    int hour = (h + timeValue) % 24;//算出几天后那个时间执行
                    int days = int.Parse(d) + dayInt;
                    int minute = DateTime.Now.Minute;//分钟
                    var y = datetime.Year.ToString();//那一年
                    var m = datetime.Month.ToString();//那一月
                    var d = datetime.ToString("dd");//那一天
                    var h = int.Parse(datetime.ToString("HH"));//小时
                                                               // int dayInt = (h + timeValue) / 24;//算出几天后执行
                                                               // int hour = (h + timeValue) % 24;//算出几天后那个时间执行
                                                               // int days = int.Parse(d) + dayInt;
                    int minute = datetime.Minute;//分钟
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
@@ -322,7 +330,7 @@
                    string text5 = Language.StringByID(MyInternationalizationString.hour1);
                    string text6 = Language.StringByID(MyInternationalizationString.executeSone);
                    // timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                    timeTextBtn.Text = text1 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                    timeTextBtn.Text = text1 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
                }
@@ -663,5 +671,16 @@
            }
        }
     
        /// <summary>
        /// 将UNIX时间戳转换成系统时间(精确到秒)
        /// <returns></returns>
        public DateTime GetLocalTime(int unixTimeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(unixTimeStamp + "0000000");
            TimeSpan toNow = new TimeSpan(lTime);
            DateTime dtResult = dtStart.Add(toNow);
            return dtResult;
        }
    }
}