Страница 1 из 2
Помогите в расчетах времени
Добавлено: Сб май 25, 2013 10:26 pm
adzam
Есть переменная-Восход солнца - %Chisinau.SunRise%
и Заход солнца - %Chisinau.SunSet%
Подскажите пож как высчитать и вывести Долготу дня
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Бьюсь два дня и пока не получается
Re: Помогите в расчетах времени
Добавлено: Вс май 26, 2013 9:54 pm
LutsenkoDenis
Википедия(
http://ru.wikipedia.org/wiki/%D0%94%D0% ... 0%BD%D1%8F) говорит, что
Долгота дня — промежуток времени между восходом Солнца и его заходом, в течение которого Солнце видно над горизонтом.
И еще, что в языке программирования PHP есть функции для определения времени восхода date_sunrise() и захода date_sunset() Солнца. Аргументами функций являются географические коорднаты и время эпохи UNIX.
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Re: Помогите в расчетах времени
Добавлено: Вс май 26, 2013 10:00 pm
anemcov
LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
Re: Помогите в расчетах времени
Добавлено: Вс май 26, 2013 10:34 pm
LutsenkoDenis
да, пардон, не написал про это, думал что с timestamp очевидно, да и проще.
Тем более что date_sunrise() может возвращать timestamp
Re: Помогите в расчетах времени
Добавлено: Пн май 27, 2013 6:52 am
adzam
Спасибо что отозвались, я все это понимаю, рассвет и закат получаю с метеостанции в таком формате ( 17:24 )
у меня не получается написать правильный сценарий или html код, чтоб мажор это понял
Re: Помогите в расчетах времени
Добавлено: Сб июн 01, 2013 7:59 pm
adzam
anemcov писал(а):LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
Re: Помогите в расчетах времени
Добавлено: Вс июн 02, 2013 4:48 pm
anemcov
adzam писал(а):anemcov писал(а):LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
Как-то так. Проверку кода не делал
Код: Выделить всё
$DayStart = explode(":",%Chisinau.SunRise%);
$DayEnd = explode(":",%Chisinau.SunSet%);
$h_start = (int)$DayStart[0];
$m_start = (int)$DayStart[1];
$h_end = (int)$DayEnd[0];
$m_end = (int)$DayEnd[1];
$dh = $h_end - $h_start;
$dm = $m_end - $m_start;
if ($dm<0){
$dh=$dh-11;
$dm=$dm+60;
}
echo('Длина дня '.$dh.' часов '.$dm.' минут');
Re: Помогите в расчетах времени
Добавлено: Вс июн 02, 2013 4:48 pm
anemcov
adzam писал(а):anemcov писал(а):LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
Как-то так. Проверку кода не делал
Код: Выделить всё
$DayStart = explode(":",%Chisinau.SunRise%);
$DayEnd = explode(":",%Chisinau.SunSet%);
$h_start = (int)$DayStart[0];
$m_start = (int)$DayStart[1];
$h_end = (int)$DayEnd[0];
$m_end = (int)$DayEnd[1];
$dh = $h_end - $h_start;
$dm = $m_end - $m_start;
if ($dm<0){
$dh=$dh-11;
$dm=$dm+60;
}
echo('Длина дня '.$dh.' часов '.$dm.' минут');
Re: Помогите в расчетах времени
Добавлено: Вс июн 02, 2013 4:49 pm
anemcov
adzam писал(а):anemcov писал(а):LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
Как-то так. Проверку кода не делал
Код: Выделить всё
$DayStart = explode(":",%Chisinau.SunRise%);
$DayEnd = explode(":",%Chisinau.SunSet%);
$h_start = (int)$DayStart[0];
$m_start = (int)$DayStart[1];
$h_end = (int)$DayEnd[0];
$m_end = (int)$DayEnd[1];
$dh = $h_end - $h_start;
$dm = $m_end - $m_start;
if ($dm<0){
$dh=$dh-11;
$dm=$dm+60;
}
echo('Длина дня '.$dh.' часов '.$dm.' минут');
Re: Помогите в расчетах времени
Добавлено: Вс июн 02, 2013 4:49 pm
anemcov
adzam писал(а):anemcov писал(а):LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?
В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
Как-то так. Проверку кода не делал
Код: Выделить всё
$DayStart = explode(":",%Chisinau.SunRise%);
$DayEnd = explode(":",%Chisinau.SunSet%);
$h_start = (int)$DayStart[0];
$m_start = (int)$DayStart[1];
$h_end = (int)$DayEnd[0];
$m_end = (int)$DayEnd[1];
$dh = $h_end - $h_start;
$dm = $m_end - $m_start;
if ($dm<0){
$dh=$dh-11;
$dm=$dm+60;
}
echo('Длина дня '.$dh.' часов '.$dm.' минут');