Всем привет.
Немного зашел в тупик с алгоритмом, буду признателен за любую помощь.
Суть задачи такова, есть список временных интервалов, например:
1) 2016-05-13 12:00:00 - 2016-05-13 13:00:00 = 1 час
2) 2016-05-13 12:30:00 - 2016-05-13 13:30:00 = 1 час
3) 2016-05-13 13:00:00 - 2016-05-13 14:00:00 = 1 час
Т.е. если просто сложить эит интервалы, то выйдет 3-и часа, но мне еще нужно вычесть все пересечения, т.е. первый интервал берем полностью, от второго интервала берем только 30 минут, поскольку остальные 30 входят в первый интервал, и от третьего берем тоже только 30 минут, потому как вторые тридцать входят во второй интервал. Итого в итоге у меня должно получится 2 часа, а не три.
Может кто-то уже сталкивался с подобной задачей или есть какие-то стандартные функции для подобного, о которых я не знаю? Буду признателен за любую помощь.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.