Использование системы в различных ситуациях, вопросы программирования сценариев.
Модератор: immortal
-
anemcov
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
-
Благодарил (а):
0
-
Поблагодарили:
6 раз
Сообщение
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 раз
Сообщение
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 раз
Сообщение
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 раз
Сообщение
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 раз
Сообщение
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 раз
Сообщение
anemcov » Вс июн 02, 2013 7:22 pm
почему-то вывалилось 3 поста, хотя у меня так ни одна страница до конца и не загрузилась.
Надеюсь, администратор подчистит
Последний раз редактировалось
anemcov Пн июн 03, 2013 11:21 am, всего редактировалось 1 раз.
-
adzam
- Сообщения: 607
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
-
Благодарил (а):
20 раз
-
Поблагодарили:
138 раз
Сообщение
adzam » Вт июн 04, 2013 8:03 pm
anemcov писал(а):почему-то вывалилось 3 поста, хотя у меня так ни одна страница до конца и не загрузилась.
Надеюсь, администратор подчистит
привет, спасибо за ответ но попробовал, чето не работает прога, где-то ошибка
-
anemcov
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
-
Благодарил (а):
0
-
Поблагодарили:
6 раз
Сообщение
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.' минут');