Random Time Generator for time betweeen 7AM to 11AM

c#, random-time-generation, winforms

Solution

Calculate the number of minutes between your start and stop times then generate a random number between 0 and the maximum number of minutes:

Random random = new Random();
TimeSpan start = TimeSpan.FromHours(7);
TimeSpan end = TimeSpan.FromHours(11);
int maxMinutes = (int)((end - start).TotalMinutes);

for (int i = 0; i < 100; ++i) {
   int minutes = random.Next(maxMinutes);
   TimeSpan t = start.Add(TimeSpan.FromMinutes(minutes));
   // Do something with t...
}

Notes:

- You should only create one random object, otherwise you will get many duplicates in a row.

- The start time is inclusive but the end time is exclusive. If you want to include the end time too, add 1 to maxMinutes.

Problem

I am creating a test file and I need to fill it with random times between 7AM to 11AM. Repeating entries are OK as long as they aren't all the same I'm also only interested in HH:MM (no seconds) I don't know where to start. I did Google before posting and I found an interesting search result ``` www.random.org/clock-times/ ``` Only issue is that all times "randomly" generated are in sequential order. I can put it out of sequence once but I need to generate 100 to 10,000 entries. I am hoping to create a WinForm C# app that will help me do this.

Original source