<p>I need to let end users specify a time range, to be stored and used internally as a starting date/time and ending date/time.  The range could be minutes or it could be days.</p>

<p><strong>Has anyone discovered an interactive control that can handle this elegantly?</strong></p>

<p>Most GUI toolkits have a calendar control, so I could specify "start" with a calendar for the day and a text field for the time...and the same for "end".</p>

<p>I could also replace the "end" controls with a single text field or slider that simply describes how many seconds/minutes/hours after start "end" is.</p>

<p>What I don't like about these ideas is how much clicking, typing, and more clicking is required to describe such a simple concept.  Also I have to slap the user's hand if a time is typed in that isn't recognizable as a time.</p>

<p>Is there a cleaner implementation that I'm overlooking?</p>

There is no single answer, it depends on the context. For many places good text controls are enough. Of course such things can still help by supporting pasting and some increase/decrease actions. Maybe it can even do some validation for the value.
Then there are places that need something more. Calendar can be really helpful for entering dates and some kind of slider could be used for time. (Lotus Notes calendar has a slider.)
My advise is:
Think what you need. Don't put complicated widgets to a less used dialog.
If you need these nice helpful widgets, check if there are ready made in the library you are using and take some time to see how others have done these.
Always have the text controls with support for pasting.