[Сценарий] Вычисляем восход и заход солнца

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
Amarok
Сообщения: 1415
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

[Сценарий] Вычисляем восход и заход солнца

Сообщение Amarok » Ср апр 15, 2015 2:44 pm

Сценарий CalcSunSetRise (Вычисление восхода и захода солнца v1.1):

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

$lat=gg('ThisComputer.latitude');   // широта
$long=gg('ThisComputer.longitude'); // долгота
$sun_info = date_sun_info(time(), $lat, $long);
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
sg('ThisComputer.SunRise',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
sg('ThisComputer.SunSet',date("H:i", $sunset));
}
}
 
Последний раз редактировалось Amarok Пн дек 14, 2015 9:50 am, всего редактировалось 2 раза.
За это сообщение автора Amarok поблагодарили (всего 2):
Strangeman (Пн окт 22, 2018 9:44 pm) • Bolik.Stav (Вс фев 17, 2019 5:14 pm)
Рейтинг: 2.35%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение LutsenkoDenis » Ср апр 15, 2015 2:46 pm

в php вроде была встроенная функция, которая время восхода и заката вычисляет
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
Amarok
Сообщения: 1415
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение Amarok » Ср апр 15, 2015 2:49 pm

LutsenkoDenis писал(а):в php вроде была встроенная функция, которая время восхода и заката вычисляет
Дык чой-т она у меня криво тогда работала. Потому и пользую это чудище)
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
adzam
Сообщения: 583
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 16 раз
Поблагодарили: 131 раз

Re: Вычисляем восход и заход солнца

Сообщение adzam » Ср апр 15, 2015 7:05 pm

Я использую такой попроще:
СпойлерПоказать
$sun_info = date_sun_info(time(), 46.984, 28.8358);

foreach ($sun_info as $key => $val) {

if ($key == 'sunrise') {

$sunrise = $val;
echo 'Восход: '.date("H:i:s", $sunrise).'<br>';
setGlobal('Chisinau.SunRise',date("H:i:s", $sunrise));
}

if ($key == 'sunset') {

$sunset = $val;
$day_length = $sunset - $sunrise;

echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('Chisinau.SunSet',date("H:i:s", $sunset));
setGlobal('Chisinau.LongTag',gmdate("H:i:s", $day_length));
}

if ($key == 'transit') {
echo 'В зените: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.Transit',date("H:i:s", $val));
}

if ($key == 'civil_twilight_begin') {
echo 'Начало утренних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.civil_begin',date("H:i:s", $val));
}

if ($key == 'civil_twilight_end') {
echo 'Конец вечерних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('Chisinau.civil_end',date("H:i:s", $val));
}

}
и запускаю раз в сутки в 0.00
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Аватара пользователя
Amarok
Сообщения: 1415
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение Amarok » Чт апр 16, 2015 8:12 am

А есть еще проще?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
adzam
Сообщения: 583
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 16 раз
Поблагодарили: 131 раз

Re: Вычисляем восход и заход солнца

Сообщение adzam » Чт апр 16, 2015 11:45 am

Не встречал
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение LutsenkoDenis » Чт апр 16, 2015 4:04 pm

adzam писал(а):Я использую такой попроще:....
Да, date_sun_info - это как раз та самая встроенная в php функция которая рассчитывает восход, закат и т.д.

И на счёт проще... проще уже точно некуда :)

p.s. В приложении OpenWeather я эту функцию тоже использую для получения данных на сегодня и несколько дней вперед.
За это сообщение автора LutsenkoDenis поблагодарил:
Amarok (Чт апр 16, 2015 5:06 pm)
Рейтинг: 1.18%
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение LutsenkoDenis » Чт апр 16, 2015 5:37 pm

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

echo 'Восход: '.date("H:i:s", $sunrise).'<br />'; // с секундами
echo 'Восход: '.date("H:i", $sunrise).'<br>';      // без секунд  
или про какой код идет речь? и в переменной что? стока или дата?
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
Amarok
Сообщения: 1415
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Вычисляем восход и заход солнца

Сообщение Amarok » Чт апр 16, 2015 5:51 pm

Всё, нашел).
так теперь покаПоказать

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

$lat=gg('ThisComputer.latitude');   // широта
$long=gg('ThisComputer.longitude'); // долгота

$sun_info = date_sun_info(time(), $lat, $long);

foreach ($sun_info as $key => $val) {

if ($key == 'sunrise') {

$sunrise = $val;
echo 'Восход: '.date("H:i", $sunrise).'<br>';
setGlobal('ThisComputer.SunRise',date("H:i", $sunrise));
}

if ($key == 'sunset') {

$sunset = $val;
$day_length = $sunset - $sunrise;

echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('ThisComputer.SunSet',date("H:i", $sunset));
//setGlobal('ThisComputer.LongTag',gmdate("H:i", $day_length));
}

if ($key == 'transit') {
echo 'В зените: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.Transit',date("H:i", $val));
}

if ($key == 'civil_twilight_begin') {
echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_begin',date("H:i:s", $val));
}

if ($key == 'civil_twilight_end') {
echo 'Конец вечерних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_end',date("H:i", $val));
}

}
 
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
adzam
Сообщения: 583
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 16 раз
Поблагодарили: 131 раз

Re: Вычисляем восход и заход солнца

Сообщение adzam » Чт апр 16, 2015 6:52 pm

Время показывает
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Ответить