Мой код ниже, он работал нормально для примера тестового примера, но не был принят в окончательном представлении. Программа просит это сделать. На Земле есть 360 Долгот, которые являются равноудаленными вертикальными воображаемыми линиями, нарисованными на Земле, отделенными друг от друга на 1 градус от центра Земли. Период вращения Земли вокруг своей оси составляет 24 часа. Все страны имеют свое официальное время и, следовательно, часовые пояса.
UT C - это универсальная временная координата, которая проходит через 0 (нулевой градус) долготы.
Время в определенном месте на Земле может рассчитываться с использованием периода вращения Земли и долготы этого конкретного места. Например, индийский часовой пояс IST (стандартное индийское время) расположен на 82,5 ° восточной долготы. Следовательно, индийское время можно рассчитать следующим образом: -
IST = UT C + (24/360) * 82,5 = UT C + 5: 30H
Теперь предположим, что мы изменились Период вращения Земли с использованием некоторой воображаемой силы, это изменит время на каждой долготе на Земле.
Рассчитайте наименьший угол между часовой и минутной стрелками часов, который показывает разницу во времени на определенная долгота и время в UT C, т.е. мы должны взять меньший из двух углов, образованных между часовой и минутной стрелками.
#include <stdio.h>
#include <math.h>
int main()
{
int p;
float l;
float t,m,mang,hang,and;
int i;
scanf("%d",&p);
scanf("%f",&l);
l= floor(100*l)/100;
t=(p/360.0)*l;
i=(int)t;
m=((t-i)*60);
mang=(m/5)*30;
if(i>=1&&i<=11){
hang=(i*30)+(((t-i)*60)/2);
}
else
hang=0+(((t-i)*60)/2);
if(mang>=hang)
{
ang=mang-hang;
}
else
{
ang=hang-mang;
}
if(((i>6&&i<=11)&&m==0.0)||ang>180.0)
{
ang=360-ang;
}
printf("%0.2f",ang);
return 0;
}