Salve galera, alguém consegue pensar num jeito melhor de fazer isso? O sorteio da Loteria Nacional da Irlanda acontece duas vezes por semana na quarta-feira e um sábado às 20 horas. Escreva uma função ou classe que calcula e retorna a próxima data do sorteio válido com base na data e hora atual e também em uma data e hora opcionalmente fornecida.
class IrishLottery
{
    private $now;
    private $wednesday;
    private $saturday;
    public function __construct($optionalDate = null)
    {
        try {
            $this->now = new DateTime($optionalDate);
            $currentDay = clone $this->now;
            $this->wednesday = clone $this->now;
            $this->saturday = clone $this->now;
            $currentDay->modify('this day 20:00');
            $ordinal = $this->now <= $currentDay ? 'this' : 'next';
            $this->wednesday->modify($ordinal . ' wednesday 20:00');
            $this->saturday->modify($ordinal . ' saturday 20:00');
        } catch (Exception $e) {
            die($e->getMessage());
        }
    }
    public function getNextDraw()
    {
        return $this->wednesday < $this->saturday ? $this->wednesday : $this->saturday;
    }
}