Android任务管理工具,计算到期日期,标记任务为完成



我正在开发一个Android应用程序,用于管理家庭中的任务,如清洁厨房,吸尘…

我实现了一个基于Json的API来从中央数据库检索和存储数据。

每个家庭可以有一个或多个居民。它也可以有任意数量的任务。

任务处理是我的问题所涉及的。任务的截止日期应该平均分配给家庭中的每个居民,每个居民都应该能够查看并完成他们的任务。

在我目前的设计中,它有以下属性:Id(int), Label(String),Description(String), Start_date(日期),Start_resident_id(int), household_id(int),week_interval(int), weekdays(int)

start_date:任务创建的日期(需要计算到期日期)

week_interval:此任务应每X周执行一次(1周,4个月,…)

工作日:任务应该在工作日完成(例如14表示星期一、星期四,1357表示星期一、星期三、星期五、星期日)

还有一个task_status模型,当一个常驻用户标记一个任务完成时,它就会被创建。

task_status: id(Int), task_id(Int), status(Int), resident_id(Int), due_date(日期),comment(string)

状态:1 =完成,2 =跳过

resident_id =已完成任务的常驻用户的外键

  1. 计算每个任务和住院医师的截止日期的最佳方法是什么?

  2. 使用task_status条目来标记任务是否已完成是一个好的设计?

这个模型对我来说基本上是正确的。您有一个重复任务的定义,并且您有这个任务的实例,代表特定的执行。

到期日期我不太清楚。你想用它表达什么?我可以想到两种方式来完成任务:
  1. 任务已经启动,尚未完成,任务的下一次迭代即将开始。但是什么时候应该执行死刑呢?下一次迭代何时开始?也许你想把它包含在任务定义中,比如一个任务必须在计划开始后的x天内完成。
  2. 有一段时间没有人启动任务。所以任务本身应该再次启动。但是,如果您在每次迭代时自动创建任务的实例,那么这将是冗余的。

您还可以考虑从存储的数据中删除到期日期。因为你有开始日期和时间间隔,你总是可以动态计算到期日。当然,如果您更改任务定义,旧的执行实例可能变得毫无意义。

所以第一个到期日计算是针对任务本身的。取任务最后一次(按日期)完成的执行,并计算从那时到现在的时间间隔。如果该时间间隔大于定义的时间间隔,则任务将重新启动。第二个计算是针对任务的特定执行。以未完成的任务执行为例,将其开始日期和当前日期与预定义的完成时间量或预测的下一次执行的开始日期进行比较。这实际上取决于你如何创建实例,以及你想如何指定"due"。

如果你想灵活安排任务,它可能会变得更复杂:如果任务在计划日期之前或之后开始怎么办?如果你在执行新任务的前一天打扫完厨房会怎么样?连续两天打扫厨房有意义吗?

最新更新