I am trying to compute the duration Of each Project and each Task appointed to the Project, unfortunately it always returns 0. computeDuration:
Date minDate = projectTasks[0].gettaskFromDate();
Date maxDate = projectTasks[0].gettaskEndDate();
for (int i = 0; i < numOfTasks; ++i) {
if (projectTasks[i] != null && projectTasks[i].gettaskEndDate() != null && projectTasks[i].gettaskFromDate() != null) {
projectTasks[i].settaskDuration(utils.Globals.computeDuration(projectTasks[i].gettaskFromDate(), projectTasks[i].gettaskEndDate()));
}
}
for (int i = 0; i < numOfTasks; ++i) {
if (projectTasks[i] != null && projectTasks[i].gettaskEndDate() != null && projectTasks[i].gettaskFromDate() != null) {
if (utils.Globals.validateDates(projectTasks[i].gettaskFromDate(), minDate)) {
minDate = projectTasks[i].gettaskFromDate();
}
if (utils.Globals.validateDates(maxDate, projectTasks[i].gettaskEndDate())) {
maxDate = projectTasks[i].gettaskEndDate();
}
}
}
setprojectDuration(utils.Globals.computeDuration(minDate, maxDate));
}
utils.Globals.validateDates:
public static boolean validateDates(Date from, Date to){
return from.before(to);
}
utils.Globals.computeDuration:
public static int computeDuration(Date from, Date to){
long diffIn = Math.abs(to.getTime() - from.getTime());
int duration = (int) TimeUnit.DAYS.convert(diffIn, TimeUnit.MILLISECONDS);
return duration;
}
Thanks in advance!
You could confirm if the diff between your from and to dates is over one day or not. If all diffs is less than one day, then computeDuration return 0 always.
Please check DAYS diff is expected or not in the blow codes.