0

Pythonでテストデータを生成しようとしています。(私のアプリは python ではありませんが、python はデータ生成が簡単で簡潔なようです)。活動の「タイムスロット」を生成することにより、従業員の典型的な勤務日をシミュレートしたいと考えています。以下の関数は、 (total_hrs)を使用して とnの間の ' ' 数のタイムスロットを生成する必要がstartありますend(自然に見えるようにランダムなギャップがあります)。total

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_hrsに変換total_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 を連続して追加して開始します (すでに最初にstartendに変換する必要がありますdatetime.date) 。
于 2013-01-20T15:16:31.813 に答える