а откуда берется инфа для date_sun_info? откуда скачивает?)LutsenkoDenis писал(а):Да, date_sun_info - это как раз та самая встроенная в php функция которая рассчитывает восход, закат и т.д.adzam писал(а):Я использую такой попроще:....
И на счёт проще... проще уже точно некуда
p.s. В приложении OpenWeather я эту функцию тоже использую для получения данных на сегодня и несколько дней вперед.
[Сценарий] Вычисляем восход и заход солнца
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Вычисляем восход и заход солнца
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: Вычисляем восход и заход солнца
вычисляется!webms писал(а):а откуда берется инфа для date_sun_info? откуда скачивает?)LutsenkoDenis писал(а):Да, date_sun_info - это как раз та самая встроенная в php функция которая рассчитывает восход, закат и т.д.adzam писал(а):Я использую такой попроще:....
И на счёт проще... проще уже точно некуда
p.s. В приложении OpenWeather я эту функцию тоже использую для получения данных на сегодня и несколько дней вперед.
земля ведь круглая (почти)
вращается вокруг солнца!
в общем математика + астрономия (или астрофизика)
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Вычисляем восход и заход солнца
Я просто через веб переменную забираю эту инфу сейчас (для эко режима), но если есть такая функция в пхп, то лучше наверное изменить код
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Вычисляем восход и заход солнца
Вместо парсинга можно вот такой скрипт запускать раз в суткиwebms писал(а):Я просто через веб переменную забираю эту инфу сейчас (для эко режима), но если есть такая функция в пхп, то лучше наверное изменить код
Код: Выделить всё
$sun_info = date_sun_info(time(), 55.ХХХХХХХ, 55.ХХХХХХХ); //Ваши географические координаты.
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
//echo 'Восход: '.date("H:i:s", $sunrise).'<br>';
setGlobal('ThisComputer.SunRiseTime',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.SunSetTime',date("H:i", $sunset));
setGlobal('ThisComputer.LongTagTime',gmdate("H:i", $day_length));
}
if ($key == 'transit') {
//echo 'В зените: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.TransitTime',date("H:i", $val));
}
if ($key == 'civil_twilight_begin') {
//echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
setGlobal('ThisComputer.Chicivil_beginTime',date("H:i", $val));
}
if ($key == 'civil_twilight_end') {
//echo 'Конец вечерних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.civil_endTime',date("H:i", $val));
}
}
- Рейтинг: 6.98%
-
- Сообщения: 4
- Зарегистрирован: Пн дек 25, 2017 10:08 pm
- Благодарил (а): 3 раза
- Поблагодарили: 4 раза
Re: Вычисляем восход и заход солнца
СпойлерПоказать
$lat = 46.3825; // +N, -S gg.mmss
$lon = 32.3653; // +E, -W
$d=date('d',time());
$m=date('m',time());
$y=date('Y',time());
$n1=floor(275/9*$m);
$n2=floor(($m+9)/12);
$n3=1+floor(($y-4*floor($y/4)+2)/3);
$n=$n1-($n2*$n3)+$d-30;
if ($lon>=0){
$c16=floor($lon);
$c17=floor(($lon-floor($lon))*100);
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
} else{
$c16=ceil($lon);
$c17=ceil(($lon-floor($lon))*100);
}
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
if($lat>=0){
$c20=floor($lat);
$c21=floor(($lat-floor($lat))*100);
}else{
$c20=ceil($lat);
$c21=ceil(($lat-ceil($lat))*100);
}
$c22=($lat-$c20-$c21/100)*1000;
$vlat=$c20+($c21+$c22/100)/60;
$lnghrs=$vlong/15;
$tx= date('r',time()) ;
$tmp0 = mb_substr( $tx , 26, 3, "UTF-8");
$tmp0=$tmp0-floor($lnghrs);
$trise=$n+((6-$lnghrs)/24);
$tset=$n+((18-$lnghrs)/24);
$mrise=(0.9856*$trise)-3.289;
$mset=(0.9856*$tset)-3.289; # $lrise_ не совпадает !!!
$lrise_=$mrise+(1.916*sin($mrise/180*M_PI))+(0.02*sin($mrise/180*M_PI))+282.634;
$lrise= $lrise_-360* floor($lrise_/360);
$lset_=$mset+(1.916*sin($mset/180*M_PI))+(0.02*sin($mset/180*M_PI))+282.634;
$lset= $lset_-360* floor($lset_/360);
$rarise=atan(0.91764*tan($lrise/180*M_PI))*180/M_PI;
$lqr=90*floor($lrise/90);
$rqr=90*floor($rarise/90);
$rar=($rarise+($lqr-$rqr))/15;
$raset=atan(0.91764*tan($lset/180*M_PI))*180/M_PI;
$lqs=90*floor($lset/90);
$rqs=90*floor($raset/90);
$ras=($raset+($lqs-$rqs))/15;
$sindecriser=0.39782*sin($lrise/180*M_PI);
$cosdecriser=cos(asin($sindecriser));
$sindecrises=0.39782*sin($lset/180*M_PI);
$cosdecrises=cos(asin($sindecrises));
$coshrise=(cos(90.8333/180*M_PI)-$sindecriser*sin($vlat/180*M_PI))/($cosdecriser*cos($vlat/180*M_PI));
$coshset=(cos(90.8333/180*M_PI)-$sindecrises*sin($vlat/180*M_PI))/($cosdecrises*cos($vlat/180*M_PI));
$hrise = (360-acos($coshrise)*180/M_PI)/15;
$hset= (acos($coshrise)*180/M_PI)/15;
$trise = $hrise+$rar-(0.06571*$trise)-6.622;
$tset= $hset+$ras-(0.06571*$tset)-6.622;
if(($trise-$lnghrs)<0) {
$utrise=$trise-$lnghrs+24;
}else{
if(($trise-$lnghrs)>=24){
$utrise=$trise-$lnghrs-24;
}
else{
$utrise=$trise-$lnghrs;
}
}
if(($tset-$lnghrs)<0){
$utset=$tset-$lnghrs+24*ceil(abs(($tset-$lnghrs)/24));
} else{
if(($tset-$lnghrs)>=24){
$utset= $tset-$lnghrs-24;
} else{
$utset=$tset-$lnghrs;
}
}
$utcrise=floor($utrise)*60+floor(($utrise-floor($utrise))*60);
$utcHrise= floor($utcrise/60);
$utcMrise= floor($utcrise-$utcHrise*60);
$loctimerise= floor($utrise)*60+floor(($utrise-floor($utrise))*60)+floor($lnghrs)*60;
$locHrise= floor($loctimerise/60);
$locMrise= floor($loctimerise-$locHrise*60);
$st2=$locMrise;
if ($st2<10){
$st2=("0".$st2);
}
$st1=$locHrise+$tmp0;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('SunRiseTime',$st);
$utcset=floor($utset)*60+floor(($utset-floor($utset))*60);
$utcHset= floor($utcset/60);
$utcMset= floor($utcset-$utcset*60);
$loctimeset= floor($utset)*60+floor(($utset-floor($utset))*60)+floor($lnghrs)*60;
$locHset= floor($loctimeset/60);
$locMset= floor($loctimeset-$locHset*60);
$st=($locHset.":".$locMset);
$st2=$locMset;
if ($st2<10){
$st2=("0".$st2);
}
$st1=$locHset+$tmp0;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('SunSetTime',$st);
$lon = 32.3653; // +E, -W
$d=date('d',time());
$m=date('m',time());
$y=date('Y',time());
$n1=floor(275/9*$m);
$n2=floor(($m+9)/12);
$n3=1+floor(($y-4*floor($y/4)+2)/3);
$n=$n1-($n2*$n3)+$d-30;
if ($lon>=0){
$c16=floor($lon);
$c17=floor(($lon-floor($lon))*100);
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
} else{
$c16=ceil($lon);
$c17=ceil(($lon-floor($lon))*100);
}
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
if($lat>=0){
$c20=floor($lat);
$c21=floor(($lat-floor($lat))*100);
}else{
$c20=ceil($lat);
$c21=ceil(($lat-ceil($lat))*100);
}
$c22=($lat-$c20-$c21/100)*1000;
$vlat=$c20+($c21+$c22/100)/60;
$lnghrs=$vlong/15;
$tx= date('r',time()) ;
$tmp0 = mb_substr( $tx , 26, 3, "UTF-8");
$tmp0=$tmp0-floor($lnghrs);
$trise=$n+((6-$lnghrs)/24);
$tset=$n+((18-$lnghrs)/24);
$mrise=(0.9856*$trise)-3.289;
$mset=(0.9856*$tset)-3.289; # $lrise_ не совпадает !!!
$lrise_=$mrise+(1.916*sin($mrise/180*M_PI))+(0.02*sin($mrise/180*M_PI))+282.634;
$lrise= $lrise_-360* floor($lrise_/360);
$lset_=$mset+(1.916*sin($mset/180*M_PI))+(0.02*sin($mset/180*M_PI))+282.634;
$lset= $lset_-360* floor($lset_/360);
$rarise=atan(0.91764*tan($lrise/180*M_PI))*180/M_PI;
$lqr=90*floor($lrise/90);
$rqr=90*floor($rarise/90);
$rar=($rarise+($lqr-$rqr))/15;
$raset=atan(0.91764*tan($lset/180*M_PI))*180/M_PI;
$lqs=90*floor($lset/90);
$rqs=90*floor($raset/90);
$ras=($raset+($lqs-$rqs))/15;
$sindecriser=0.39782*sin($lrise/180*M_PI);
$cosdecriser=cos(asin($sindecriser));
$sindecrises=0.39782*sin($lset/180*M_PI);
$cosdecrises=cos(asin($sindecrises));
$coshrise=(cos(90.8333/180*M_PI)-$sindecriser*sin($vlat/180*M_PI))/($cosdecriser*cos($vlat/180*M_PI));
$coshset=(cos(90.8333/180*M_PI)-$sindecrises*sin($vlat/180*M_PI))/($cosdecrises*cos($vlat/180*M_PI));
$hrise = (360-acos($coshrise)*180/M_PI)/15;
$hset= (acos($coshrise)*180/M_PI)/15;
$trise = $hrise+$rar-(0.06571*$trise)-6.622;
$tset= $hset+$ras-(0.06571*$tset)-6.622;
if(($trise-$lnghrs)<0) {
$utrise=$trise-$lnghrs+24;
}else{
if(($trise-$lnghrs)>=24){
$utrise=$trise-$lnghrs-24;
}
else{
$utrise=$trise-$lnghrs;
}
}
if(($tset-$lnghrs)<0){
$utset=$tset-$lnghrs+24*ceil(abs(($tset-$lnghrs)/24));
} else{
if(($tset-$lnghrs)>=24){
$utset= $tset-$lnghrs-24;
} else{
$utset=$tset-$lnghrs;
}
}
$utcrise=floor($utrise)*60+floor(($utrise-floor($utrise))*60);
$utcHrise= floor($utcrise/60);
$utcMrise= floor($utcrise-$utcHrise*60);
$loctimerise= floor($utrise)*60+floor(($utrise-floor($utrise))*60)+floor($lnghrs)*60;
$locHrise= floor($loctimerise/60);
$locMrise= floor($loctimerise-$locHrise*60);
$st2=$locMrise;
if ($st2<10){
$st2=("0".$st2);
}
$st1=$locHrise+$tmp0;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('SunRiseTime',$st);
$utcset=floor($utset)*60+floor(($utset-floor($utset))*60);
$utcHset= floor($utcset/60);
$utcMset= floor($utcset-$utcset*60);
$loctimeset= floor($utset)*60+floor(($utset-floor($utset))*60)+floor($lnghrs)*60;
$locHset= floor($loctimeset/60);
$locMset= floor($loctimeset-$locHset*60);
$st=($locHset.":".$locMset);
$st2=$locMset;
if ($st2<10){
$st2=("0".$st2);
}
$st1=$locHset+$tmp0;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('SunSetTime',$st);
- Рейтинг: 3.49%
-
- Сообщения: 264
- Зарегистрирован: Чт ноя 08, 2018 5:51 am
- Благодарил (а): 10 раз
- Поблагодарили: 83 раза
Re: [Сценарий] Вычисляем восход и заход солнца
Для чайников типа меня:
1. создаем сценарий CalcSunSetRise
далее в поле код вставляем один и вверху предложенных кодов я взял от vladmezh
ставим галочку выполнять по расписанию: каждый день ночью.
ставим галочку выполнить сейчас.
в консоле должна появится строка вида:
12:08:12 0.38198100 09:03;17:22
проверяем что числа по любому сайты погода например http://weather.yandex.ru
если совпадает, то всё норм ,если нет -скорее всего ошибка в координатах.
Ваши данные о рассвете и закате тут: %ThisComputer.SunRiseTime% и %ThisComputer.SunSetTime%
1. создаем сценарий CalcSunSetRise
далее в поле код вставляем один и вверху предложенных кодов я взял от vladmezh
СпойлерПоказать
$lat = 55.098478; // +N, -S gg.mmss
$lon = 83.044850; // +E, -W
$d=date('d',time());
$m=date('m',time());
$y=date('Y',time());
$n1=floor(275/9*$m);
$n2=floor(($m+9)/12);
$n3=1+floor(($y-4*floor($y/4)+2)/3);
$n=$n1-($n2*$n3)+$d-30;
if ($lon>=0){
$c16=floor($lon);
$c17=floor(($lon-floor($lon))*100);
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
} else{
$c16=ceil($lon);
$c17=ceil(($lon-floor($lon))*100);
}
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
if($lat>=0){
$c20=floor($lat);
$c21=floor(($lat-floor($lat))*100);
}else{
$c20=ceil($lat);
$c21=ceil(($lat-ceil($lat))*100);
}
$c22=($lat-$c20-$c21/100)*1000;
$vlat=$c20+($c21+$c22/100)/60;
$lnghrs=$vlong/15;
$tx= date('r',time()) ;
$tmp0 = mb_substr( $tx , 26, 3, "UTF-8");
$tmp0=$tmp0-floor($lnghrs);
$trise=$n+((6-$lnghrs)/24);
$tset=$n+((18-$lnghrs)/24);
$mrise=(0.9856*$trise)-3.289;
$mset=(0.9856*$tset)-3.289; # $lrise_ не совпадает !!!
$lrise_=$mrise+(1.916*sin($mrise/180*M_PI))+(0.02*sin($mrise/180*M_PI))+282.634;
$lrise= $lrise_-360* floor($lrise_/360);
$lset_=$mset+(1.916*sin($mset/180*M_PI))+(0.02*sin($mset/180*M_PI))+282.634;
$lset= $lset_-360* floor($lset_/360);
$rarise=atan(0.91764*tan($lrise/180*M_PI))*180/M_PI;
$lqr=90*floor($lrise/90);
$rqr=90*floor($rarise/90);
$rar=($rarise+($lqr-$rqr))/15;
$raset=atan(0.91764*tan($lset/180*M_PI))*180/M_PI;
$lqs=90*floor($lset/90);
$rqs=90*floor($raset/90);
$ras=($raset+($lqs-$rqs))/15;
$sindecriser=0.39782*sin($lrise/180*M_PI);
$cosdecriser=cos(asin($sindecriser));
$sindecrises=0.39782*sin($lset/180*M_PI);
$cosdecrises=cos(asin($sindecrises));
$coshrise=(cos(90.8333/180*M_PI)-$sindecriser*sin($vlat/180*M_PI))/($cosdecriser*cos($vlat/180*M_PI));
$coshset=(cos(90.8333/180*M_PI)-$sindecrises*sin($vlat/180*M_PI))/($cosdecrises*cos($vlat/180*M_PI));
$hrise = (360-acos($coshrise)*180/M_PI)/15;
$hset= (acos($coshrise)*180/M_PI)/15;
$trise = $hrise+$rar-(0.06571*$trise)-6.622;
$tset= $hset+$ras-(0.06571*$tset)-6.622;
if(($trise-$lnghrs)<0) {
$utrise=$trise-$lnghrs+24;
}else{
if(($trise-$lnghrs)>=24){
$utrise=$trise-$lnghrs-24;
}
else{
$utrise=$trise-$lnghrs;
}
}
if(($tset-$lnghrs)<0){
$utset=$tset-$lnghrs+24*ceil(abs(($tset-$lnghrs)/24));
} else{
if(($tset-$lnghrs)>=24){
$utset= $tset-$lnghrs-24;
} else{
$utset=$tset-$lnghrs;
}
}
$utcrise=floor($utrise)*60+floor(($utrise-floor($utrise))*60);
$utcHrise= floor($utcrise/60);
$utcMrise= floor($utcrise-$utcHrise*60);
$loctimerise= floor($utrise)*60+floor(($utrise-floor($utrise))*60)+floor($lnghrs)*60;
$locHrise= floor($loctimerise/60);
$locMrise= floor($loctimerise-$locHrise*60);
$st2=$locMrise;
if ($st2<10){
$st2=("0".$st2);
}
$st1=($locHrise+$tmp0)%24;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('ThisComputer.SunRiseTime',$st);
$str=$st;
$utcset=floor($utset)*60+floor(($utset-floor($utset))*60);
$utcHset= floor($utcset/60);
$utcMset= floor($utcset-$utcset*60);
$loctimeset= floor($utset)*60+floor(($utset-floor($utset))*60)+floor($lnghrs)*60;
$locHset= floor($loctimeset/60);
$locMset= floor($loctimeset-$locHset*60);
$st=($locHset.":".$locMset);
$st2=$locMset;
if ($st2<10){
$st2=("0".$st2);
}
$st1=($locHset+$tmp0)%24;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('ThisComputer.SunSetTime',$st);
echo gg('ThisComputer.SunRiseTime').";".gg('ThisComputer.SunSetTime');
Debmes(gg('ThisComputer.SunRiseTime').";".gg('ThisComputer.SunSetTime'));
$lon = 83.044850; // +E, -W
$d=date('d',time());
$m=date('m',time());
$y=date('Y',time());
$n1=floor(275/9*$m);
$n2=floor(($m+9)/12);
$n3=1+floor(($y-4*floor($y/4)+2)/3);
$n=$n1-($n2*$n3)+$d-30;
if ($lon>=0){
$c16=floor($lon);
$c17=floor(($lon-floor($lon))*100);
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
} else{
$c16=ceil($lon);
$c17=ceil(($lon-floor($lon))*100);
}
$c18=($lon-$c16-$c17/100)*1000;
$vlong=$c16+($c17+$c18/10)/60;
if($lat>=0){
$c20=floor($lat);
$c21=floor(($lat-floor($lat))*100);
}else{
$c20=ceil($lat);
$c21=ceil(($lat-ceil($lat))*100);
}
$c22=($lat-$c20-$c21/100)*1000;
$vlat=$c20+($c21+$c22/100)/60;
$lnghrs=$vlong/15;
$tx= date('r',time()) ;
$tmp0 = mb_substr( $tx , 26, 3, "UTF-8");
$tmp0=$tmp0-floor($lnghrs);
$trise=$n+((6-$lnghrs)/24);
$tset=$n+((18-$lnghrs)/24);
$mrise=(0.9856*$trise)-3.289;
$mset=(0.9856*$tset)-3.289; # $lrise_ не совпадает !!!
$lrise_=$mrise+(1.916*sin($mrise/180*M_PI))+(0.02*sin($mrise/180*M_PI))+282.634;
$lrise= $lrise_-360* floor($lrise_/360);
$lset_=$mset+(1.916*sin($mset/180*M_PI))+(0.02*sin($mset/180*M_PI))+282.634;
$lset= $lset_-360* floor($lset_/360);
$rarise=atan(0.91764*tan($lrise/180*M_PI))*180/M_PI;
$lqr=90*floor($lrise/90);
$rqr=90*floor($rarise/90);
$rar=($rarise+($lqr-$rqr))/15;
$raset=atan(0.91764*tan($lset/180*M_PI))*180/M_PI;
$lqs=90*floor($lset/90);
$rqs=90*floor($raset/90);
$ras=($raset+($lqs-$rqs))/15;
$sindecriser=0.39782*sin($lrise/180*M_PI);
$cosdecriser=cos(asin($sindecriser));
$sindecrises=0.39782*sin($lset/180*M_PI);
$cosdecrises=cos(asin($sindecrises));
$coshrise=(cos(90.8333/180*M_PI)-$sindecriser*sin($vlat/180*M_PI))/($cosdecriser*cos($vlat/180*M_PI));
$coshset=(cos(90.8333/180*M_PI)-$sindecrises*sin($vlat/180*M_PI))/($cosdecrises*cos($vlat/180*M_PI));
$hrise = (360-acos($coshrise)*180/M_PI)/15;
$hset= (acos($coshrise)*180/M_PI)/15;
$trise = $hrise+$rar-(0.06571*$trise)-6.622;
$tset= $hset+$ras-(0.06571*$tset)-6.622;
if(($trise-$lnghrs)<0) {
$utrise=$trise-$lnghrs+24;
}else{
if(($trise-$lnghrs)>=24){
$utrise=$trise-$lnghrs-24;
}
else{
$utrise=$trise-$lnghrs;
}
}
if(($tset-$lnghrs)<0){
$utset=$tset-$lnghrs+24*ceil(abs(($tset-$lnghrs)/24));
} else{
if(($tset-$lnghrs)>=24){
$utset= $tset-$lnghrs-24;
} else{
$utset=$tset-$lnghrs;
}
}
$utcrise=floor($utrise)*60+floor(($utrise-floor($utrise))*60);
$utcHrise= floor($utcrise/60);
$utcMrise= floor($utcrise-$utcHrise*60);
$loctimerise= floor($utrise)*60+floor(($utrise-floor($utrise))*60)+floor($lnghrs)*60;
$locHrise= floor($loctimerise/60);
$locMrise= floor($loctimerise-$locHrise*60);
$st2=$locMrise;
if ($st2<10){
$st2=("0".$st2);
}
$st1=($locHrise+$tmp0)%24;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('ThisComputer.SunRiseTime',$st);
$str=$st;
$utcset=floor($utset)*60+floor(($utset-floor($utset))*60);
$utcHset= floor($utcset/60);
$utcMset= floor($utcset-$utcset*60);
$loctimeset= floor($utset)*60+floor(($utset-floor($utset))*60)+floor($lnghrs)*60;
$locHset= floor($loctimeset/60);
$locMset= floor($loctimeset-$locHset*60);
$st=($locHset.":".$locMset);
$st2=$locMset;
if ($st2<10){
$st2=("0".$st2);
}
$st1=($locHset+$tmp0)%24;
if ($st1<10){
$st1=("0".$st1);
}
$st=($st1.":".$st2);
SetGlobal('ThisComputer.SunSetTime',$st);
echo gg('ThisComputer.SunRiseTime').";".gg('ThisComputer.SunSetTime');
Debmes(gg('ThisComputer.SunRiseTime').";".gg('ThisComputer.SunSetTime'));
ставим галочку выполнять по расписанию: каждый день ночью.
ставим галочку выполнить сейчас.
в консоле должна появится строка вида:
12:08:12 0.38198100 09:03;17:22
проверяем что числа по любому сайты погода например http://weather.yandex.ru
если совпадает, то всё норм ,если нет -скорее всего ошибка в координатах.
Ваши данные о рассвете и закате тут: %ThisComputer.SunRiseTime% и %ThisComputer.SunSetTime%
Последний раз редактировалось stellhawk Пт апр 05, 2019 10:24 am, всего редактировалось 1 раз.
- Рейтинг: 1.16%
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: [Сценарий] Вычисляем восход и заход солнца
Мой сценарий:
Код: Выделить всё
$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 поблагодарили (всего 2):
- Strangeman (Чт янв 24, 2019 1:32 pm) • EvgenyG (Пт апр 03, 2020 11:25 pm)
- Рейтинг: 2.33%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: [Сценарий] Вычисляем восход и заход солнца
К двум предыдущим постам:
Ждём, когда по третьему кругу будем одно и то же перепостить))
Ждём, когда по третьему кругу будем одно и то же перепостить))
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 264
- Зарегистрирован: Чт ноя 08, 2018 5:51 am
- Благодарил (а): 10 раз
- Поблагодарили: 83 раза
Re: [Сценарий] Вычисляем восход и заход солнца
Вот Вы смеётесь, хорошо рассуждать когда ты тут с 2014 года и система росла вместе с тобой.
а новичкам очень трудно. я программист с большим стажем. и скажу честно, чтобы что-то в системе вообще понять надо очень много времени.
не хватает простых и понятных кейсов, чтобы вникнуть в суть системы. чтобы снизить сложность входа в систему
а новичкам очень трудно. я программист с большим стажем. и скажу честно, чтобы что-то в системе вообще понять надо очень много времени.
не хватает простых и понятных кейсов, чтобы вникнуть в суть системы. чтобы снизить сложность входа в систему
- Рейтинг: 3.49%
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: [Сценарий] Вычисляем восход и заход солнца
- Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram