Помогите в расчетах времени

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 6:36 pm

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.' минут');
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 7:18 pm

adzam писал(а):
anemcov писал(а):
LutsenkoDenis писал(а):
Формула верная.
Долгота дня = %Chisinau.SunSet% - %Chisinau.SunRise%
Вот здесь согласиться можно только частично - формула верная, если в значениях хранятся TimeStamp. А если там строки хранятся, вытянутые через веб-переменные?

В этом случае алгоритм такой:
1. Выделяем из строк часы и минуты в отдельные переменные.
2. Вычисляем разность часов
3. Вычисляем разность минут. Если разность минут меньше нуля - отнимаем единицу от разности часов, а к разности минут прибавляем 60.
А можно поконкретней по поводу моего примера с формулами, а то не получается выделить переменные и вычислить разницу, поэтому и прошу помощи,помогите пож.
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 7:19 pm

как-то так
$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.' минут');
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 7:20 pm

Код: Выделить всё

$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.' минут');
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 7:21 pm

$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.' минут');
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вс июн 02, 2013 7:22 pm

почему-то вывалилось 3 поста, хотя у меня так ни одна страница до конца и не загрузилась.
Надеюсь, администратор подчистит
Последний раз редактировалось anemcov Пн июн 03, 2013 11:21 am, всего редактировалось 1 раз.
Аватара пользователя
adzam
Сообщения: 607
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 20 раз
Поблагодарили: 138 раз

Re: Помогите в расчетах времени

Сообщение adzam » Вт июн 04, 2013 8:03 pm

anemcov писал(а):почему-то вывалилось 3 поста, хотя у меня так ни одна страница до конца и не загрузилась.
Надеюсь, администратор подчистит
привет, спасибо за ответ но попробовал, чето не работает прога, где-то ошибка
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
anemcov
Сообщения: 211
Зарегистрирован: Вт янв 08, 2013 11:50 pm
Откуда: Санкт-Петербург
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Помогите в расчетах времени

Сообщение anemcov » Вт июн 04, 2013 8:21 pm

adzam писал(а):
anemcov писал(а):почему-то вывалилось 3 поста, хотя у меня так ни одна страница до конца и не загрузилась.
Надеюсь, администратор подчистит
привет, спасибо за ответ но попробовал, чето не работает прога, где-то ошибка
ок, попробуем так/ Подправил получение значений и была ошибочка при вычитании.

Код: Выделить всё

$DayStart = explode(":",gg("Chisinau.SunRise"));
$DayEnd = explode(":",gg("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-1;
$dm=$dm+60;
}
echo('Длина дня '.$dh.' часов '.$dm.' минут');
Ответить