Kąt między wskazówkami
Jak znaleźć kąt między wskazówkami godzinowymi i minutowymi zegara w dowolnym momencie?
Użytkownik wprowadzi godzinę i minutę, a metoda powinna podać kąt między wskazówką godzinową a minutową w tym podanym czasie.
Logika polega na znalezieniu różnicy kąta wskazówki godzinowej i minutowej z pozycji zegara 12:00 gdy kąt między nimi wynosi zero.
Każda godzina na zegarze reprezentuje kąt 30 stopni (360 podzielone przez 12). Podobnie, każda minuta na zegarze będzie reprezentować kąt 6 stopni (360 podzielone przez 60), a kąt na godzinę będzie wzrastał wraz ze wzrostem minut dla tej godziny.
Czyli dla godziny 10:30 kąt między wskazówką godzinową a wskazówką minutową wynosi 135 stopni. dla godziny 12:15 kąt między wskazówką godzinową i minutową wynosi 82,5 stopni a dla godziny 3:15 kąt wynosi 7,5 stopnia.
private static double FindAngleinTime(int hours, int mins)
{
double minuteDegrees = mins * 6;
double hourDegrees = (hours * 30) + (mins * 30.0 / 60);
double angle = Math.Abs(hourDegrees - minuteDegrees);
if (angle > 180)
angle = 360 - angle;
return angle;
}
I teraz sprawdzamy nasze rozwiązanie.
static void Main(string[] args)
{
var angle = FindAngleinTime(3, 15);
Console.WriteLine("Kąt między wskazówką godzinową a minutową wynosi {0} stopni", angle);
}
Ciekawy punkt widzenia. Nigdy wcześniej nie myślałem o [temat] w ten sposób. Dzięki za otwarcie moich oczu!