Рефакторинг PHP кода
Почитайте экстримальное программирование Кента Бэка, там хорошо описаны основные паттерны для рефакторинга. Правда там больше в контексте TDD, но рефакторинг без тестов это всегда боль.
Что до приведенного кода:
введите отдельные сущьности вместо StdClass. Для клониварония можно использовать clone.
А так нужно разбираться в бизнес логике. Но у вас сейчас слишком много кода, можно легко запутаться.
Да тут просто непаханное поле для рефакторинга как внутри метода, так и за его пределами.
"makeDay" тут не при чём.