Circuit Python: I have generated an array of random times between 0700 and 2300. How do I repeat this action for every day in a set number of days?

Question:

I have the following code which generates one random time in each 30-minute slot from 0700 to 2300. Now I need to repeat this operation for every day within a set number of days, in order to get new random times for every day. How can I do this?

import datetime
from random import randint # random time


begin = datetime.datetime.strptime('07:00', '%H:%M')
end = datetime.datetime.strptime('23:00', '%H:%M')
delta = datetime.timedelta(minutes=30)


r = []

while begin <= end:
    r.append(begin + datetime.timedelta(seconds=randint(0, 1800)))
    begin = begin + delta
print(r)
Asked By: Bozzaglia

||

Answers:

Libraries needed:

import datetime
from random import randint # random time

Then let’s define start, end and step time

begin = datetime.datetime.strptime('07:00', '%H:%M')
end = datetime.datetime.strptime('23:00', '%H:%M')
delta = datetime.timedelta(minutes=30)

The following array will store random times:

r = []

while begin <= end:
    r.append(begin + datetime.timedelta(seconds=randint(0, 1800)))
    begin = begin + delta
print(r)

Output:
[datetime.datetime(1900, 1, 1, 7, 14, 19), datetime.datetime(1900, 1, 1, 7, 34, 46), datetime.datetime(1900, 1, 1, 8, 19, 8), datetime.datetime(1900, 1, 1, 8, 50, 23), datetime.datetime(1900, 1, 1, 9, 0, 7), datetime.datetime(1900, 1, 1, 9, 30, 27), datetime.datetime(1900, 1, 1, 10, 8, 6), datetime.datetime(1900, 1, 1, 10, 44, 53), datetime.datetime(1900, 1, 1, 11, 10, 27), datetime.datetime(1900, 1, 1, 11, 33, 37), datetime.datetime(1900, 1, 1, 12, 15, 50), datetime.datetime(1900, 1, 1, 12, 36, 41), datetime.datetime(1900, 1, 1, 13, 1, 5), datetime.datetime(1900, 1, 1, 13, 34, 56), datetime.datetime(1900, 1, 1, 14, 8, 41), datetime.datetime(1900, 1, 1, 14, 49, 12), datetime.datetime(1900, 1, 1, 15, 23, 40), datetime.datetime(1900, 1, 1, 15, 57, 32), datetime.datetime(1900, 1, 1, 16, 21, 2), datetime.datetime(1900, 1, 1, 16, 45, 40), datetime.datetime(1900, 1, 1, 17, 9), datetime.datetime(1900, 1, 1, 17, 45, 52), datetime.datetime(1900, 1, 1, 18, 0, 36), datetime.datetime(1900, 1, 1, 18, 57, 5), datetime.datetime(1900, 1, 1, 19, 13, 22), datetime.datetime(1900, 1, 1, 19, 32, 40), datetime.datetime(1900, 1, 1, 20, 1, 12), datetime.datetime(1900, 1, 1, 20, 34, 55), datetime.datetime(1900, 1, 1, 21, 2, 27), datetime.datetime(1900, 1, 1, 21, 41, 6), datetime.datetime(1900, 1, 1, 22, 24, 14), datetime.datetime(1900, 1, 1, 22, 39, 15), datetime.datetime(1900, 1, 1, 23, 14, 38)]

Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.