correctly represent time differences:

* implement own algorithm
* add tests with specific cases and expected outcome