出于某种原因,我无法弄清楚如何以干净的方式对其进行编码。我有一个任务对象,这个对象有一个开始日期和结束日期。我想将此对象传递给将执行此任务的方法,根据频率将其克隆 X 次并将其开始日期设置为发生日期。
当然,可以通过示例更好地说明事情:假设我的任务开始日期为 2012 年 6 月 1 日,结束日期为 2012 年 9 月 15 日。频率设置为每月。我想将此任务传递给一个方法,该方法将为我创建一个包含 4 个任务的数组(6 月、7 月、8 月、9 月),其开始日期设置为相应月份的第一天
ArrayList<task> spawnTasks(Task task, Frequency Monthly){
ArrayList<Task> arr = new ArrayList<Task>();
Task TaskJune = task.clone();
TaskJune.setStartDate("June, 1, 2012");
Task TaskJuly = task.clone();
TaskJuly.setStartDate("July, 1, 2012");
Task TaskAug = task.clone();
Taskaug.setStartDate("Aug, 1, 2012");
Task TaskSept = task.clone();
TaskSept.setStartDate("Sept, 1, 2012");
}
所以你可以看到我每月创建一次任务,因为频率是每月一次(我可以只每周或每月一次),它发生在 1 日,因为那是开始日期,它从未超过 9 月,因为结束日期是 9 月 15 日。
我知道我必须使用日历和循环来做到这一点,但我就是想不通