首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Simpy模拟时间链接到Python,用于一周一天的特定操作

将Simpy模拟时间链接到Python,用于一周一天的特定操作
EN

Stack Overflow用户
提问于 2015-08-19 13:22:43
回答 2查看 883关注 0票数 2

我想用SimPy建立一个生产网络的仿真模型,包括以下关于时间的特性:

  • 工厂从星期一到星期五工作(两班8小时)
  • 除了星期天,重型卡车全天都在开车。
  • 轻型卡车在一周的所有日子里开车,包括星期天。

为此,我希望构造一个结合超时的文档中给出的BroadcastPipe,以使对象在它们不工作的日子中等待(因为这些设备需要额外的逻辑来建模轮班)。这个BroadcastPipe只会计算每一天(假设每天24*60分钟),然后说“今天是星期一,大家”。然后,这些物体(工厂、轻型和重型卡车)将单独处理这些信息并采取相应行动。

现在,我想知道是否有一种优雅的方法将模拟时间链接到常规Python日历对象,以便轻松地访问一周中的几天。这将有助于清晰和增强,如银行假日和不同的开始日期。你有什么建议怎么做吗?(或关于如何更好地建模的一般性建议?)提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-19 20:04:02

我通常设置一个开始日期,并将其定义为等于模拟时间(Environment.now) 0。由于SimPy的模拟时间没有固有的单位,我也定义它是以秒为单位的。使用箭头,我可以轻松地从当前的模拟时间计算出实际的日期和时间:

代码语言:javascript
复制
import arrow
import simpy

start = arrow.get('2015-01-01T00:00:00')
env = simpy.Environment()

# do some simulation ...

current_date = start.replace(seconds=env.now)
print('Curret weekday:', current_date.weekday())
票数 4
EN

Stack Overflow用户

发布于 2015-08-19 13:32:53

您可以使用日期时间模块并创建一个day_of_week对象,但仍然需要计算经过的时间:

代码语言:javascript
复制
import datetime
# yyyy = four digit year integer
# mm = 1- or 2-digit month integer
# dd = 1- or 2-digit day integer

day_of_week = datetime.datetime(yyyy, mm, dd).strftime('%a')

if day_of_week == 'Mon':
    # Do Monday tasks...
elif day_of_week == 'Tue':
    # Tuesday...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32096777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档