回退定时任务修改

This commit is contained in:
“虞渠成” 2026-06-29 14:40:26 +08:00
parent c27ef0847a
commit 2e59fd86ff

View File

@ -57,7 +57,7 @@ namespace Kill.UI.Pages
} }
/// <summary> /// <summary>
/// 查找今天启用的任务(返回最近的一个未开始任务,排除进行中任务) /// 查找今天启用的任务(返回最近的一个未结束任务)
/// </summary> /// </summary>
private ScheduleTask? FindTodayTask(byte todayFlag) private ScheduleTask? FindTodayTask(byte todayFlag)
{ {
@ -83,17 +83,19 @@ namespace Kill.UI.Pages
continue; continue;
int taskTime = task.StartHour * 60 + task.StartMinute; int taskTime = task.StartHour * 60 + task.StartMinute;
int endTime = task.EndHour * 60 + task.EndMinute;
// 只保留未开始的任务 // 跳过已结束的任务
if (currentTime >= taskTime) if (currentTime >= endTime)
continue; continue;
int timeDiff = taskTime - currentTime; int timeDiff = taskTime - currentTime;
// 找距离当前时间最近的未开始任务 // 找距离当前时间最近的任务(包括进行中的和未来未开始的)
if (timeDiff < nearestTimeDiff) int absTimeDiff = Math.Abs(timeDiff);
if (absTimeDiff < nearestTimeDiff)
{ {
nearestTimeDiff = timeDiff; nearestTimeDiff = absTimeDiff;
nearestTask = task; nearestTask = task;
} }
} }
@ -109,10 +111,23 @@ namespace Kill.UI.Pages
string modeText = GetModeText(task.Mode); string modeText = GetModeText(task.Mode);
string timeText = $"{task.StartHour:D2}:{task.StartMinute:D2}"; string timeText = $"{task.StartHour:D2}:{task.StartMinute:D2}";
// 判断任务是未来还是进行中
int currentTime = DateTime.Now.Hour * 60 + DateTime.Now.Minute;
int taskTime = task.StartHour * 60 + task.StartMinute;
bool isFutureTask = taskTime > currentTime;
if (scheduleText != null) if (scheduleText != null)
{ {
// 经过 FindTodayTask 筛选后,只可能是未开始的任务 if (isFutureTask)
scheduleText.text = $"{modeText}: {timeText}"; {
// 即将开始的任务
scheduleText.text = $"{modeText}: {timeText}";
}
else
{
// 任务进行中,显示时间段
scheduleText.text = $"{modeText}: {timeText}~{task.EndHour:D2}:{task.EndMinute:D2}";
}
} }
} }