Coworker is working on a Perl script that validates some pieces of collected data. The nature of the data isn't important but we're having trouble wrapping our head around the math needed to validate this elegantly.

We have a set of timestamps within some files we're creating. These timestamps are a kind of a "marker" within the file, indicating the start point of a certain kind of data activity. These markers can be created at any time (very random times) depending on conditions. But we also added code to make sure to, at the very least, create the markers at fifteen minute intervals, four times per hour at the 00 15 30 45 points in the hour based on the time of day.

So a file might have timestamps like this:
- File start time (at <hour>:07)
- Marker
- Marker
- Marker
- Marker (at <hour>:15)
- Marker
- Marker
- File end time (at <hour>:24)


Or the file might look like this:
- File start time (at <hour>:22)
- Marker (at <hour:30>)
- Marker (at <hour:45>)
- Marker (at <hour+1:00>)
- File end time (at <hour+1>:07)

Or the file might look like this:
- File start time (at <hour>:32)
- Marker
- File end time (at <hour>:34)


The length of the file is variable, as are all of the markers and the file's start and end times. But there should at least be markers at those 00 15 30 45 points within each hour.

We're creating a script to validate that the 15-minute interval bits actually got done in our code in all possible cases. We need to run this script against a huge set of data files of varying length that were previously collected.

All timestamps are already converted to Epoch time (number of seconds since the Epoch) so theoretically we should be able to validate this with integer math. We're just trying to figure out how to do it without resorting to brute force. We're looking for an elegant math-based solution for this. Given a list like the ones above, how do we elegantly validate that the list does not contain a gap at any of the quarter hour points?

Any ideas?
_________________________
Tony Fabris