using System.Collections.Generic;
var data = new List<string> {
var resultData = new List<ResultDatum>();
var timeout = TimeSpan.FromMinutes(2);
foreach (var datum in data) {
var time = DateTime.Parse(datum);
if (resultData.Count == 0
|| time - resultData[^1].EndTime > timeout) {
resultData.Add(new(time, time, 1));
resultData[^1] = resultData[^1] with {
Frequency = resultData[^1].Frequency + 1
foreach (var resultDatum in resultData) {
Console.WriteLine(resultDatum);
record ResultDatum(DateTime StartTime, DateTime EndTime, int Frequency);