<?php

function getAngle($hours, $minutes) {
    $degreesMinutes = getDegreesForMinutes($minutes);
    $degreesHours = getDegreesForHours($hours);
    $hourArrowDegrees = getHourArrowDegrees($minutes);
    return abs($degreesMinutes - ($degreesHours + $hourArrowDegrees));
}

function getDegreesForMinutes($minutes) {
    $degreesInMinute = 360 / 60;
    return $degreesInMinute * $minutes;
}

function getDegreesForHours($hours) {
    $normalizedHours = $hours % 12;
    $degreesInFiveMinutes = 30;
    return $degreesInFiveMinutes * $normalizedHours;
}

function getHourArrowDegrees($minutes) {
    return $minutes / 2;
}

$testcases = [
    // час, минута, ожидаемый угол
    [12, 0, 0],
    [15, 20, 20],
    [3, 20, 20],
    [12, 30, 165],
    [10, 50, 25],
];

foreach ($testcases as list($hours, $minutes, $expectedAngle)) {
    $givenAngle = getAngle($hours, $minutes);
    echo "Время: {$hours}:{$minutes} ожидаемый угол: {$expectedAngle} дано: {$givenAngle}\n";
}
