Как сравнить время полученное из Интернета?
- Войдите на сайт для отправки комментариев
Чт, 26/11/2020 - 17:28
Всем привет! У меня есть программа которая получает время из Интернета (для этого она подключается к указанной в коде точке доступа). Кто-то знает как определить, что время полученное из Интернета больше, например, 12 часов и 30 минут, но при этом меньше чем, например, 15 часов и 45 минут? Буду рад идеям, которые вы мне предложите ;-) PS: эта программа полноценно работает на плате ESP8266.
#include <ESP8266WiFi.h> #include <time.h> const char *ssid_name = "****"; const char *ssid_password = "********"; long timezone = 2; // указываем часовой пояс byte daysavetime = 1; // указываем летнее время int timing; WiFiClient wifi_client; void setup() { Serial.begin(115200); } void loop() { if (WiFi.status() != WL_CONNECTED) { Serial.print("Подключаемся к WiFi точке: "); Serial.println(ssid_name); WiFi.begin(ssid_name, ssid_password); if (WiFi.waitForConnectResult() != WL_CONNECTED) return; Serial.println("Подключились к WiFi!"); Serial.print("Локальный IP: "); Serial.println(WiFi.localIP()); configTime(3600*timezone, daysavetime, "pool.ntp.org", "time.nist.gov"); Serial.println("Получаем время из Интернета ..."); while(!time(nullptr)){ Serial.print("*"); delay(1000); } Serial.println("Время отклика ... OK"); } time_t now = time(nullptr); struct tm* p_tm = localtime(&now); if (millis() - timing > 1000) { timing = millis(); Serial.print(p_tm->tm_hour); Serial.print(":"); Serial.print(p_tm->tm_min); Serial.print(":"); Serial.println(p_tm->tm_sec); } }
А вы умеете сравнить, скажем, переменную Х - что она больше 12, но меньше 15 ? Если да, то что мешает проделать это с часами? А потом ровно то же самое - с минутами?
Какие часы? какие минуты? Про unixtime что-нибудь слышали?
Только что узнал) И как же использовать unixtime?
Только что узнал) И как же использовать unixtime?
Так, как Вам нужно.
Спасибо, за подсказку! Уже разобрался с UNIX Time
Спасибо, за подсказку! Уже разобрался с UNIX Time
Юникстайм - это правильно, но все-таки как сравнить часы с 12 и 15 - так в голову и не пришло?
Сложность в том, что нужно сравнивать не только часы, но и минуты, а просто сравнить их не получится
Сложность в том, что нужно сравнивать не только часы, но и минуты, а просто сравнить их не получится
Желательно и самому мочь придумать как сравнивать (Часы*60 + минуты) .
Сравнивайте ваше время ( Часы*100 + минуты) с 1230 и 1545.
И неважно что у вас никогда не будет значений типа 1860, 1861.....
Неравенству это будет всё равно....
Вот только как вы будете через полночь переходить....
Сложность в том, что нужно сравнивать не только часы, но и минуты, а просто сравнить их не получится
ну я и говорю - "не осилил" :)
Юникстайм - это правильно, но все-таки как сравнить часы с 12 и 15 - так в голову и не пришло?
Перевести в юникстайм и уже юникстайм сравнивать между собой.
Сложность в том, что нужно сравнивать не только часы, но и минуты, а просто сравнить их не получится
Желательно и самому мочь придумать как сравнивать (Часы*60 + минуты) .
И что раньше, 23:59 или 00:01?
Сложность в том, что нужно сравнивать не только часы, но и минуты, а просто сравнить их не получится
Желательно и самому мочь придумать как сравнивать (Часы*60 + минуты) .
И что раньше, 23:59 или 00:01?
Месяц*1000000+Дата*10000+ Часы*100 + минуты
Что раньше, 01:01 1 января 2010 года или 01:01 2 января 2000 года?
Сравнение имеет смысл только при ПОЛНОМ задании всех составляющих (по крайней мере, всех "старших" до обнаружения различия). И в этом случае уже возникает вопрос об используемой разрядности. Юникстайм обеспечивает достаточно компактное представление. И, одновременно, кроме качественного результата (раньше/позже) позволяет получить количественный (на сколько дней/часов/минут).
Что раньше, 01:01 1 января 2010 года или 01:01 2 января 2000 года?
Как трудно жить среди занудов...
Сказал трехлетний Михаил.
Среди зануд! - поправил Павел
Тридцатилетний и в очках.
Ну да, как можно еще назвать человека, указывающего на ошибки?
Только занудой.