从两个变量计算任务的紧急程度
Calculate urgency of a task from two variables
我正试图找出一个公式来计算一组任意任务的紧迫性,基于距离"截止日期"的天数和任务已经完成的百分比。
到目前为止,我有一个'函数',它给出了表示:
U = ((dd * 25) - (100 - cp))
Where:
dd = Day difference from deadline to current date (in an integer value)
cp = current completion % (in an integer value - in increments of 5 currently)
这给了我一个线性函数,函数中的25表示任务每天进展25%。
所以在任何给定的日期:
Where U <0 task is urgent
Where U =0 task is on schedule
Where U >0 task is ahead of schedule
(The actual display on if a task is on schedule (within a range) would be handled separately)
是否有其他的方法来计算任务的紧迫性,从两个日期的差和一个变量加权?从目前的回应来看:利用start date
、end date
和current date
的差异随完成率计算紧急度
可能使用非线性函数在cp>75%时增加U,在cp <时减小U;75%。线性函数和非线性函数有什么优势吗?
这将用于MySQL &javascript,因为我想要一种方法来显示如何在轨道上的任务是使用U值。所以找到一个方法来正确(比我目前的方法)计算U的值是我想做的。
解决方案我使用的解决方案(基于标记的解决方案):
((((((end_date - now) / (end_date - start_date)) * 100) * (100 - cp)) * 10) * -1)
小改动
使用rule of three
作为开始,乘以10只是为了增加值&创建一个更大的范围,而不需要过多地考虑浮点值。同样乘以-1,这样完成的任务会显示一个负数,而未完成的任务则显示一个更高的数字(这是有道理的:任务的紧迫性越高,因此数字越高)。我将来可能会添加到此,添加一个任务的速度,如建议的&还要考虑到分配给给定任务的人数。这个函数只是用来做一个粗略的指导,告诉某人(在给定的列表中)他可能需要先做哪些任务。
也因为我在MySQL中使用了这个函数需要包装在IFNULL(由于现有的数据在我的情况下)
IFNULL( *function* ,-200)
如果是空值,则初始值为-200(因为有些任务没有开始/结束日期)
感谢协助&建议
鉴于:
- 到期是截止日期与当前日期的天差
- 估计是执行任务所需的时间
- 已完成为进度百分比
这将是一个简单的三个规则:
var rest = estimated / 100 * (100 - done);
if(due < rest) {
state = 'behind';
}
if(due == rest) {
state = 'on';
}
if(due > rest) {
state = 'ahead';
}
请注意,可能很少有任务是"按计划"的,因为它们必须完全匹配,您还可以检查rest < due + 0.5 && rest > due - 0.5
之类的范围,模仿非线性优先级。
- 当使用Watchify时,Browserify+Babelify Gulp任务没有终止
- gulp Iconify任务抛出错误TypeError:Path必须是字符串.收到false
- 如果助手不在,如何从Grunt中的代码中调用任务
- WinJS(WP8.1):从后台任务更新辅助磁贴
- 如何使用gump任务将html转换为javascript字符串
- 在等待异步任务时永久循环
- 如何在dhtmlxgantt中保存任务
- 如何为requirejs和qunit设置grunt任务
- 如何使gullow任务跨平台.尤其是吞咽贝壳
- 不使用Grunt.initConfig()注册Grunt任务
- Grunt任务没有加载,获得无限循环
- 用咕哝的任务改变恒定的角度内容
- Gulp Git首先运行提交任务,然后运行推送任务
- 如何在jshint任务运行且一切正常时记录消息
- 如何按顺序运行gullow任务
- 嵌套两个以上任务的回调
- 如何在另一个任务中正确使用延迟的gump任务返回的值
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- Gulp复制任务完成后如何执行通知
- 从两个变量计算任务的紧急程度