回退定时任务修改
This commit is contained in:
parent
c27ef0847a
commit
2e59fd86ff
@ -57,7 +57,7 @@ namespace Kill.UI.Pages
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找今天启用的任务(返回最近的一个未开始任务,排除进行中任务)
|
||||
/// 查找今天启用的任务(返回最近的一个未结束任务)
|
||||
/// </summary>
|
||||
private ScheduleTask? FindTodayTask(byte todayFlag)
|
||||
{
|
||||
@ -83,17 +83,19 @@ namespace Kill.UI.Pages
|
||||
continue;
|
||||
|
||||
int taskTime = task.StartHour * 60 + task.StartMinute;
|
||||
int endTime = task.EndHour * 60 + task.EndMinute;
|
||||
|
||||
// 只保留未开始的任务
|
||||
if (currentTime >= taskTime)
|
||||
// 跳过已结束的任务
|
||||
if (currentTime >= endTime)
|
||||
continue;
|
||||
|
||||
int timeDiff = taskTime - currentTime;
|
||||
|
||||
// 找距离当前时间最近的未开始任务
|
||||
if (timeDiff < nearestTimeDiff)
|
||||
// 找距离当前时间最近的任务(包括进行中的和未来未开始的)
|
||||
int absTimeDiff = Math.Abs(timeDiff);
|
||||
if (absTimeDiff < nearestTimeDiff)
|
||||
{
|
||||
nearestTimeDiff = timeDiff;
|
||||
nearestTimeDiff = absTimeDiff;
|
||||
nearestTask = task;
|
||||
}
|
||||
}
|
||||
@ -109,10 +111,23 @@ namespace Kill.UI.Pages
|
||||
string modeText = GetModeText(task.Mode);
|
||||
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)
|
||||
{
|
||||
// 经过 FindTodayTask 筛选后,只可能是未开始的任务
|
||||
scheduleText.text = $"{modeText}: {timeText}";
|
||||
if (isFutureTask)
|
||||
{
|
||||
// 即将开始的任务
|
||||
scheduleText.text = $"{modeText}: {timeText}";
|
||||
}
|
||||
else
|
||||
{
|
||||
// 任务进行中,显示时间段
|
||||
scheduleText.text = $"{modeText}: {timeText}~{task.EndHour:D2}:{task.EndMinute:D2}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user