Определить время по углу наклона часовой стрелки (Си) - C (СИ)
Формулировка задачи:
Здравствуйте, я еще новичок в изучении языка Си, недавно столкнулся с такой вот задачкой. Всё вроде бболее менеее сам понимаю как написать, да вот не выходит.... Прошу помочь с ней:
Программа которая по заданному угловому положению часовой стрелки на циферблате часов определяет время дня. Положение часовой стрелки фиксирует угол её поворота относительно луча, проходящего через точку, которая соответствует 12 часам. Угловое смещение часовой стрелки, измеренное в угловых градусах, должно передаваться программе через аргумент командной строки её вызова. Время дня, вычисленное в результате работы программы, должно отображать через поток стандартного вывода количество часов и полных минут.
Загвоздка в том что кроме того что просто определить время хочу что бы программа уточняла время суток (день/ночь), для переведения времени в 24-часовой формат
Решение задачи: «Определить время по углу наклона часовой стрелки (Си)»
textual
Листинг программы
int angle = atoi(argv[1]) % 360;
if (angle < 0)
angle += 360;
int minutes = angle * 2;
int hours = minutes / 60;
minutes %= 60;
printf("time(HH:MM): %02d:%02d\n", hours, minutes);
Объяснение кода листинга программы
- Переменная
angleполучает значение угла наклона часовой стрелки в градусах от начальной позиции. - Если значение угла отрицательное, то оно увеличивается на 360, чтобы угол стал положительным.
- Переменная
minutesвычисляется как значение угла, умноженное на 2. - Переменная
hoursвычисляется как значение переменнойminutes, разделенное на 60. - Значение переменной
minutesберется остатком от деления на 60. - Выводится время в формате HH:MM.