Perhaps: A class to capture input. A class that examines the input and acts upon it to create 'interval' records or that examines the 'interval' records state and redirects to an appropriate algorithm. Finally, a bare-bones class for interval records - very simple, just the data, easy to serialize...

Design Patterns to consider: Visitor, Strategy, Builder/Factory. It takes some time to find the best.