gpt4 book ai didi

javascript - 从两个变量计算任务的紧迫性

转载 作者:可可西里 更新时间:2023-11-01 07:08:18 24 4
gpt4 key购买 nike

我正在尝试找出一个公式来计算一组任意任务的紧迫性,该公式基于“截止日期”之前的天数和已完成任务的完成百分比。

到目前为止,我有一个给出代表的“函数”:

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)

是否有任何其他方法可以根据两个日期的差异并由变量加权来计算任务的紧迫性?从目前的回应:使用开始日期结束日期当前日期 差异以及完成百分比来计算紧迫性

可能使用非线性函数在 cp >75% 时增加 U,在 cp < 75% 时减少 U。线性函数与非线性函数相比有什么优势吗?

这将在 MySQL 和 javascript 中使用,因为我想要一种方法来显示任务如何使用 U 值。因此,找到一种方法来正确地(比我目前的方法更重要)计算 U 的值是我正在尝试做的。

解决方案

我采用的解决方案(基于标记的解决方案):

((((((end_date - now) / (end_date - start_date)) * 100) * (100 - cp)) * 10) * -1)

小改动

使用三的规则作为开始,乘以 10 只是为了增加值并创建更宽的范围,而无需过多考虑浮点值。也乘以 -1,这样完成的任务就会给出负数,而未完成的任务会显示更高的数字(有道理:任务的紧迫性更高,因此数字更高)我将来可能会对此进行补充,按照建议为任务增加速度,同时考虑到分配给给定任务的人数。此功能仅用作粗略指南,向某人展示可能需要首先执行的任务(在给定列表中)。

此外,当我在 MySQL 中使用它时,需要将函数包装在 IFNULL 中(由于我的情况下存在数据)

IFNULL( *function* ,-200)

如果它是空值,则为 -200 的初始任意值(因为某些任务没有开始/结束日期)

感谢您的帮助和建议

最佳答案

鉴于:

  • due 是截止日期与当前日期之间的天差
  • 估计是完成一项任务所需的时间
  • done 是以百分比表示的进度

这将是一个简单的三规则:

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左右,模仿非线性优先排序。

关于javascript - 从两个变量计算任务的紧迫性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com