diff --git a/MP.TaskMan/Controllers/MpTaskController.cs b/MP.TaskMan/Controllers/MpTaskController.cs index 9d7f5add..881d6bdb 100644 --- a/MP.TaskMan/Controllers/MpTaskController.cs +++ b/MP.TaskMan/Controllers/MpTaskController.cs @@ -30,43 +30,46 @@ namespace MP.TaskMan.Controllers DateTime dtNext = DateTime.Today; try { + // prendo come partenza la DATA di fine a cui aggiungo l'ora/minuti schedulata precedentemente + TimeSpan oraSched = taskRec.DtNextExec.Subtract(taskRec.DtNextExec.Date); + DateTime baseDT = taskRec.DtLastExec.Date.Add(oraSched); // calcolo next exec da tipo... switch (taskRec.Freq) { case TaskFreqType.ND: - dtNext = taskRec.DtLastExec.AddDays(taskRec.Cad); + dtNext = baseDT.AddDays(taskRec.Cad); break; case TaskFreqType.Sec: - dtNext = taskRec.DtLastExec.AddSeconds(taskRec.Cad); + dtNext = baseDT.AddSeconds(taskRec.Cad); break; case TaskFreqType.Min: - dtNext = taskRec.DtLastExec.AddMinutes(taskRec.Cad); + dtNext = baseDT.AddMinutes(taskRec.Cad); break; case TaskFreqType.Hour: - dtNext = taskRec.DtLastExec.AddHours(taskRec.Cad); + dtNext = baseDT.AddHours(taskRec.Cad); break; case TaskFreqType.Day: - dtNext = taskRec.DtLastExec.AddDays(taskRec.Cad); + dtNext = baseDT.AddDays(taskRec.Cad); break; case TaskFreqType.Week: - dtNext = taskRec.DtLastExec.AddDays(7 * taskRec.Cad); + dtNext = baseDT.AddDays(7 * taskRec.Cad); break; case TaskFreqType.Month: - dtNext = taskRec.DtLastExec.AddMonths(taskRec.Cad); + dtNext = baseDT.AddMonths(taskRec.Cad); break; case TaskFreqType.Year: - dtNext = taskRec.DtLastExec.AddYears(taskRec.Cad); + dtNext = baseDT.AddYears(taskRec.Cad); break; default: - dtNext = taskRec.DtLastExec.AddDays(taskRec.Cad); + dtNext = baseDT.AddDays(taskRec.Cad); break; } }