0

我正在尝试通过 python 生成一些测试数据。(我的应用程序不在 python 中,但 python 似乎很容易生成数据)。我想通过生成活动的“时间段”来模拟员工的典型工作日。下面的函数需要生成 ' ' 之间的n时隙数(之间有一些随机间隙看起来很自然)和(total_hrs)。startendtotal

slots = [] #list of slot == {start:<>, end:<>}
def time_slot(start, end, n, total_hrs):
  # generate n non-overlapping time slot between start and end (with some random gap between to seem natural)

print (slots)

例如:

time_slot( "1/1/2013 9:00", "1/1/2013 17:00", 3, 8)

[ {start: "1/1/2013 9:00", end: "1/1/2013 10:30"}, ...., {start: "1/1/2013 14:00", end: "1/1/2013 16:44"}]

#total time == 8
4

1 回答 1

1

我可以概述一下我会做什么:

  1. 绘制n随机数
  2. s = sum all numbers
  3. 转换total_hrstotal_min
  4. 制作工作块:chunks = [c/s * total_min for c in numbers]
  5. end - start计算和之间的差异total_hrs
  6. 再次执行相同的步骤 1 - 4 以获得该差异以获得间隙(使用 n+1 在开始时允许间隙
  7. 最后将所有块转换为datetime.timedelta并连续添加 timedelta 以开始(在开始时您应该已经转换start为)enddatetime.date
于 2013-01-20T15:16:31.813 回答