Публикую как есть
3. Торговый интервал (ТИ) – определенный временной период, в течение которого доверительным управляющим совершаются сделки, направленные на получение прибыли и по окончанию которого производится расчет финансового результата. Торговый интервал определяется Управляющим в момент создания торгового счета и в дальнейшем не может быть изменен. Начало Торгового Интервала определяется в момент активизации Управляемого счета (первого пополнения pamm-счета). В отчетах финансовый результат группируется по торговым интервалам. Длина торгового интервала (ТИ) задается еще до начала торговли и может быть выражена в днях, неделях, месяцах. Отсчет интервалов начинается с момента, когда трейдер начал работу. Например, если длинна ТИ=3 дня, а трейдер начал работу 2013-01-15 в 16:00:00 то начало второго ТИ будет 2013-01-16 в 16:00:00, а если длинна ТИ=1 месяц, то начало второго ТИ - 2013-02-15 в 16:00:00. В случае, если длинна ТИ задана в месяцах и окончание ТИ приходится на несуществующую дату (напр. 31 апреля), то началом следующего ТИ считается 00 часов 00 минут 00 секунд 1-го числа следующего месяца (например, начало торговли - 2013-01-31 в 16:00:00, начало 4-го ТИ - 2013-05-01 в 00:00:00, а начало 5-го ТИ - 2013-06-31 в 16:00:00). Напишите функцию getTradeIntervalDate($interval, $tradeStartDate, $dateTime), которая будет возвращать массив array($from, $to), где $from и $to - время начала и окончания торгового интервала, которому принадлежит время, переданное в параметре $dateTime $inverval - длинна ТИ, может принимать значения: 1d, 2d, 1w, 2w, 3w, 1m, 2m, 3m, 4m, 5m, 6m, 7m, 8m, 9m, 10m, 11m, 12m (d - дни, w - недели, m - месяцы) $tradeStartDate - время начала торговли. Для передачи значений времени можно использовать строки, целые числа или объекты - на ваше усмотрение.
Решение
В архиве три файла.
1)Класс с методом getTradeIntervalDate($interval, $tradeStartDate, $dateTime)
2)Класс-Exception
3)Тест. Расчет Торгового Интервала
Прошлые записи
- Эволюция веб-приложений. От статичного HTML до Single Page Application и Progressive Web Application
- Переезд в Калининград
- Была ли спецоперация на Украине неизбежна?
- О serverless технологии для чатботов
- Свободное время на улучшение блога
- o-zhizni-v-kaliningrade-spustya-god
- Продажа гаража из другого города
- В Калининграде спустя полгода
- Выйти на работу или сидеть дома
- Теперь мы живем в старой немецкой квартире и счастливы
- Как за один день найти жилье в августе 2020 (после пандемии) и чуть не остаться на улице с двумя детьми