Сдвиг календаря на определенное количество дней

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
SanSanICH
Рядовой
Сообщения: 16
Зарегистрирован: 26.11.2017{, 18:49}
Репутация: 1

Сдвиг календаря на определенное количество дней

#1

Сообщение SanSanICH » 20.02.2019{, 20:59}

Приветствую автора FlProg и участников форума.

Вопрос, собственно, в названии темы.

Никто еще не задавался таким вопросом как можно сделать что-то вроде двух календарей, идущих параллельно, но со сдвигом на энное количество дней?
Теоретически, как один из вариантов, это мог бы быть какой-то блок, в котором сдвиг даты вперед или назад задавался переменной типа "Булен" (0- сдвиг назад, 1- вперед), а другой переменной задавалось бы количество дней сдвига, но уверен, что могут быть и другие какие-то решения.

Подумал сначала, что можно просто прибавлять к текущей дате нужное количество дней, но не придумал как быть с переходами по месяцам.
Поискал по форуму, но тщетно, ничего полезного не сыскал.

Для чего понадобилось:

Имеется простая метеостанция.
Для информативности добавил в нее блок расчета восхода и захода Солнца (блок авторства rw6cm), а потом захотелось, что бы такой расчет восхода и захода солнца был на день или на два вперед.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Сдвиг календаря на определенное количество дней

#2

Сообщение eugeneb » 21.02.2019{, 08:37}

Как идея.
Переводите текущую дату в секунды, прибавляйте нужное количество секунд и переводите полученный результат обратно в дату.
Например, если надо сдвинуть на два дня, то прибавить 60с * 60мин * 24ч * 2сут = 172800с.

Подходящие блоки имеются: https://flprog.ru/downloads/usersblocks ... y-sekundy/
Возможно их надо будет расширить до месяцев и лет. Или пойти на какие-то ограничения в своей программе.

Аватара пользователя
nikmotorin60
Рядовой
Сообщения: 35
Зарегистрирован: 29.04.2016{, 09:54}
Репутация: 2

Сдвиг календаря на определенное количество дней

#3

Сообщение nikmotorin60 » 21.02.2019{, 09:08}

Я бы использовал два физических RTC DS1302 Real Time Clock Module For Arduino купленных на eBey. А применив командоаппарат для установки времени эту проблему решил.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Сдвиг календаря на определенное количество дней

#4

Сообщение rw6cm » 21.02.2019{, 16:41}

SanSanICH писал(а):
20.02.2019{, 20:59}
а потом захотелось, что бы такой расчет восхода и захода солнца был на день или на два вперед.
Тяжелы такие расчеты для ардуинки, можно и отдельно блок, но думаю она повесится :shok:
Расчет восхода заката солнца на сегодня, завтра, послезавтра.
Sunday+day.flp
(458.65 КБ) 59 скачиваний
Win10-64, FLProg (portable)

SanSanICH
Рядовой
Сообщения: 16
Зарегистрирован: 26.11.2017{, 18:49}
Репутация: 1

Сдвиг календаря на определенное количество дней

#5

Сообщение SanSanICH » 21.02.2019{, 19:37}

Итак, начнем с того, что хочу поблагодарить всех откликнувшихся.

eugeneb, на счет перевода даты в секунды, добавления нужного количества секунд мысль была, но не осилил :smile453: Сложность была в том, как сделать правильные переходы по месяцам. Поэтому воспользовался Вашим вторым советом и ограничил функционал расчетом восхода и заката на текущие сутки :smile37:

nikmotorin60, Ваш вариант был бы последним по списку, но не по значению, поскольку напрограммировать что-то, что могло бы мне помочь, я еще пытался, но не выходило :smile171:

И отдельные слова благодарности для rw6cm за готовый вариант: большое спасибо за помощь!!! :ohyes: :ohyes: :ohyes:

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Сдвиг календаря на определенное количество дней

#6

Сообщение AlexCrane » 21.02.2019{, 20:17}

SanSanICH, Сделал блок для таких расчетов, чтобы можно было считать не только восходы и закаты :smile38:
Библиотеку взять здесь https://github.com/CircuitGrove/DateTime
Вложения
DateCalc_(CODE).ubi
(33.77 КБ) 45 скачиваний
DateCalc.flp
(103.92 КБ) 62 скачивания
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

SanSanICH
Рядовой
Сообщения: 16
Зарегистрирован: 26.11.2017{, 18:49}
Репутация: 1

Сдвиг календаря на определенное количество дней

#7

Сообщение SanSanICH » 25.02.2019{, 09:06}

Итак, граждане- товарищи!

Во-первых, большое спасибо для AlexCrane за нужные блоки!
Во-вторых, уважаемый rw6cm был прав. Загузил свое творение в NodeMCU v3, и она ушла в постоянную перезагрузку. Убрал блоки расчета- все работает ка надо.

На данный момент результат такой: если не получится сделать расчет восхода на "сегодня" и "завтра" при помощи одного блока от rw6cm демультплексора и счетчика (то есть блок rw6cm сначала берет данные для расчета на "сегодня" и записывает в одну группу переменных, а потом счетчик переключает выход демультиплексора, берет другие данные для расчета и записывает в другую группу переменных).

По результатам постараюсь дать отчет!

Еще раз спасибо всем, кто не прошел мимо! С прошедшим праздником друзья!

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Сдвиг календаря на определенное количество дней

#8

Сообщение rw6cm » 25.02.2019{, 16:55}

SanSanICH писал(а):
20.02.2019{, 20:59}
Имеется простая метеостанция.
На сколько простая, можно глянуть
Win10-64, FLProg (portable)

SanSanICH
Рядовой
Сообщения: 16
Зарегистрирован: 26.11.2017{, 18:49}
Репутация: 1

Сдвиг календаря на определенное количество дней

#9

Сообщение SanSanICH » 17.06.2019{, 09:03}

"Давненько я у вас здесь не был..." сказал Володя Шарапов официантке ресторана "Астория" в одном известном произведении.

Вот и я давненько не появлялся тут. Сразу перейду к делу, опишу метеостанцию:

Конструкция состоит из LCD экрана 16*2, трех кнопок, часов реального времени, датчика давления и температуры, датчика температуры DS18b20

(измеряет температуру на улице), а управляет всем этим Nodemcu v3. Все собрано на макетной плате.
На экране отображается температура внутри комнаты и за окном, а также атмосферное давление.
Самое интересное находится в локальной сети. Там:
- простенький календарь;
- рассчет восхода, захода солнца, долготы дня на текущий день, три дня назад и три вперед;
- журнал температуры за окном атмосферного давления на семь дней с регистрацией данных в 00, 03, 06, 09, 12, 15, 18, 21 час.
- "прогноз погоды" на основании атмосферного давления (значения давления взяты из проекта другого автора. Точно не припомню, но , вроде, этот проект есть на форуме).

Мой проект не претендует на совершенство в части "железа" и в программной части. Создавался исходя из имеющихся знаний и материалов для того что бы был градусник, доступ к которому был из любого места квартиры для любого члена семьи.

Тут лежит проект

Ответить

Вернуться в «Спросить у знатоков»