Число дней, прошедших с обновления задачи

Скрипт возвращает число дней, прошедших с момента последнего обновления незакрытой задачи.

package scripts.task_custom_field_value;

import com.trackstudio.exception.GranException;
import com.trackstudio.external.TaskUDFValueScript;
import com.trackstudio.secured.SecuredTaskBean;

import java.util.Calendar;

/**
 * Возвращает число дней, прошедших с момента последнего обновления незакрытой задачи. 
 * Закрытой считается задача, находящаяся в финальном состоянии.
 * Для нее возвращается 0
 */
public class DaysSinceUpdate implements TaskUDFValueScript {
    public Object calculate(SecuredTaskBean securedTaskBean) throws GranException {
        if (!securedTaskBean.getStatus().isFinish()) {
            Calendar now = Calendar.getInstance();

            now.set(Calendar.HOUR_OF_DAY, 0);
            now.set(Calendar.MINUTE, 0);
            now.set(Calendar.SECOND, 0);
            now.set(Calendar.MILLISECOND, 0);

            Calendar update = securedTaskBean.getUpdatedate();
            update.set(Calendar.HOUR_OF_DAY, 0);
            update.set(Calendar.MINUTE, 0);
            update.set(Calendar.SECOND, 0);
            update.set(Calendar.MILLISECOND, 0);

            long l = now.getTimeInMillis() - update.getTimeInMillis();

            return (int) (l / (24 * 60 * 60 * 1000));
        } else return 0;
    }
}