English

Публикую как есть

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)Тест. Расчет Торгового Интервала

Прошлые записи

  1. Подарок из Грузии
  2. Уборка придомовой территории
  3. Терпеть нельзя, действовать
  4. Курс Upgrade руководителя от Rubius Academy
  5. Мечты об идеальном Томске. Общественный транспорт и проблема пробок
  6. Arch Linux вместо Linux Mint
  7. Highload 2017 vs Codefest 2018
  8. Детализация по звонкам Теле2, совершенным более полугода назад
  9. Побыть туристом в своем городе
  10. Космология, Байкал, Математика, Минимализм
  11. Уроки математики - Youtube-канал