如何计算在 Anylogic 系统中花费 X 天的座席数

How to count no of agents who have spent X days in the system in Anylogic

我正在构建发票处理模拟模型。发票创建日期是源生成日期。每张发票都有不同的到期日。 31天、60天、90天。 在资源生成的任何代理我都可以将这些天添加到源生成日期并获取截止日期。下一步是我应该知道有多少发票已过期。 例如,10 张发票在 1-5 天之间,15 张发票在 6 到 20 天之间,等等。我在代理人群中创建了三个变量。开始时间、结束时间和截止时间 双 DueTime= (time()-dateToTime (due_date));

这是正确计算到期时间。

然后我主要尝试计算代理的数量

int x_1_5=  count( invoices, p -> p.DueTime >1 && p.DueTime<=5 );
age_1_5=String.valueOf(x_1_5);

这是给我 0 作为输出。 有办法做到这一点吗?

您只在代理创建开始时计算一次 DueDate 变量。

您需要将其转换为一个函数 getDueTime(),在调用时 returns 为双精度值。只需将 return (time()-dateToTime (due_date)); 粘贴到函数中,然后在您的计数器调用中粘贴

int x_1_5= count( invoices, p -> p.getDueTime() >1 && p.getDueTime()<=5 );

变量不像函数,反之亦然。

尝试过这种方法。在 Invoice agent 中创建函数,然后在另一个函数中的 main 上调用它。但它抛出错误。