Parcourir la source

V1.8.1
1、修复了计算倒计时不准确的问题

Apple il y a 3 mois
Parent
commit
855d773a17
1 fichiers modifiés avec 22 ajouts et 13 suppressions
  1. 22 13
      TransmitterSwitch/transmitterswitch.cpp

+ 22 - 13
TransmitterSwitch/transmitterswitch.cpp

@@ -1920,24 +1920,31 @@ bool TransmitterSwitch::isFrequencyInCountdown(int channelID)
 bool TransmitterSwitch::isInCountdownTime(const QDateTime& nowTime, const enum_WeekDay weekDay, const QDateTime& time)
 {
     // 10分钟后
-    QDateTime tmpTime = nowTime.addSecs(10 * 60);
+    int tenMinutes = 10 * 60;
+    QDateTime afterTenMins = nowTime.addSecs(tenMinutes);
     enum_WeekDay nowWeekDay = static_cast<enum_WeekDay>(nowTime.date().dayOfWeek());
-    enum_WeekDay tmpWeekDay = static_cast<enum_WeekDay>(tmpTime.date().dayOfWeek());
+    enum_WeekDay afterWeekDay = static_cast<enum_WeekDay>(afterTenMins.date().dayOfWeek());
     /* 先判断是否是特殊日 */
     if(weekDay == enum_WeekDay::WeekDay_Special)
     {
-        if(time <= tmpTime && time > nowTime)
+        if(time <= afterTenMins && time > nowTime)
         {
             /* 在10分钟之内 */
             return true;
         }
     }
 
-    /* 正常日,先判断有没有跨天 */
-    if(nowWeekDay == tmpWeekDay)
+    /* 正常日,判断执行时间是否在这两天 */
+    if(weekDay != nowWeekDay || weekDay != afterWeekDay)
+    {
+        /* 执行时间不在这两天,直接返回false */
+        return false;
+    }
+    /* 正常日,先判断十分钟后有没有跨天 */
+    if(nowWeekDay == afterWeekDay)
     {
         /* 在同一天 */
-        if(time.time() <= tmpTime.time() && time.time() > nowTime.time())
+        if(time.time() <= afterTenMins.time() && time.time() >= nowTime.time())
         {
             /* 在10分钟之内 */
             return true;
@@ -1946,18 +1953,20 @@ bool TransmitterSwitch::isInCountdownTime(const QDateTime& nowTime, const enum_W
         /* 跨天了,判断时间 */
         if(weekDay == nowWeekDay)
         {
-            /* 在今天 */
+            /* 执行时间在今天 */
             if(time.time() >= nowTime.time())
             {
                 /* 在今天的10分钟之内 */
                 return true;
-            }else {
-                /* 在明天的10分钟之内 */
-                if(time.time() <= tmpTime.time())
-                {
-                    return true;
-                }
             }
+        } else
+        {
+            /* 执行在明天 */
+            if(time.time() <= afterTenMins.time())
+            {
+                return true;
+            }
+
         }
     }