Структура данных для хранения времени и дня недели Переполнение стека

Как я могу хранить в структуре данных в PHP только время дня и день недели?

Например: 17:20 воскресенье

Также мне нужно добавить минуты и часы к этому.

Например: 22:03 воскресенье + 03:00 = 01:03 понедельник

-8

Решение

Непроверенный и, вероятно, не лучший способ

class TimeWeekday {
private $hour;
private $minute;
private $day;

private $days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');

public function __construct($hour, $minute, $day) {
$this->hour = $hour;
$this->minute = $minute;
$this->day = $day;
}

public function add($hours, $minutes, $days = 0) {
$newMinutes = $this->minute + $minutes;
$this->minute = $newMinutes % 60;
if ($this->minute < 0) {
$this->minute += 60;
}
$newHours = $this->hour + $hours + floor($newMinutes / 60);
$this->hour = $newHours % 24;
if ($this->hour < 0) {
$this->hour += 24;
}
$newDay = $this->day + $days + floor($newHours / 60);
$this->day = $newDay % 7;
if ($this->day < 0) {
$this->day += 7;
}
}

public function substract($hours, $minurtes, $days = 0) {
$this->add(-$hours, -$minurtes, -$days);
}

public function getValue() {
return sprintf('%02d:%02d %s', $this->hour, $this->minute, $this->days[$this->day]);
}
}

.

$x = new TimeWeekday(22, 3, 6);
$x->add(3,0);
echo $x->getValue();
-1

Другие решения

Других решений пока нет …