将 toDate 函数设置为到达时间 Anylogic
Posted
技术标签:
【中文标题】将 toDate 函数设置为到达时间 Anylogic【英文标题】:Setting toDate function as arrival time Anylogic 【发布时间】:2022-01-11 23:11:37 【问题描述】:我已经苦苦挣扎了好几天才能在任何逻辑中以适当的方式使用 excel 中的日期.. 我创建了一个数据库,其中日期被公式化为不同列中的整数,因为否则 excel 会弄乱日期(例如 year=2021 , month=12 day=5 hour=6 minute=44 second=0 代表 2021 /12/5 6:44:00)
现在我知道这可以通过函数toDate(year, month, day, hour, minutes seconds)
转换为日期。但是如何使用这些整数从源中的数据库中创建具有特定参数的代理并添加到自定义群体中?
最简单的方法是在数据库中添加一个函数toDate(......)的列,但我不知道该怎么做(如果不清楚,请参见图片)。还是有其他解决方案?
【问题讨论】:
【参考方案1】:一种方法:使用动态事件。
创建一个并在动作代码中写mySource.inject(1)
在 Main 中,在启动时,加载所有 dbase 行并为每一行创建一个 DE,下面假设它只有一个小时列: (使用数据库查询向导调整您的查询)。
在您的源对象中,将其设置为“调用注入()函数”
如您所见,这会起作用,但它非常麻烦。如果您正确使用 Excel 并且只需干净且良好地导入日期列,那么您可以直接使用“数据库中的到达表”源选项,这样会容易得多。我知道您需要定期到达,所以也许可以在 Excel 中编写代码,以便在特定日期为您提供这些...
【讨论】:
感谢本杰明,我现在确实在 Excel 中完成了。对于所有有同样问题的人,在导入excel中使用的公式时,它会弄乱anylogic数据库,所以首先计算出excel公式而不是复制特定列,将其粘贴到记事本中,然后将其从记事本复制回excel表,使其不再是公式,然后将其作为数据库导入。 是的,当然。在加载之前始终将您的 Excel 工作表视为干净的数据库:没有公式、干净的标题(小写、没有空格)、干净的数据字段等。或者最好:避免使用 Excel:D以上是关于将 toDate 函数设置为到达时间 Anylogic的主要内容,如果未能解决你的问题,请参考以下文章
带有 ToDate 内置函数的 PIg- NullPointerException
猪拉丁语中 ToDate 和 MonthsBetween 函数的问题