struct tm {
int8_t tm_sec; /**< seconds after the minute - [ 0 to 59 ] */
int8_t tm_min; /**< minutes after the hour - [ 0 to 59 ] */
int8_t tm_hour; /**< hours since midnight - [ 0 to 23 ] */
int8_t tm_mday; /**< day of the month - [ 1 to 31 ] */
int8_t tm_wday; /**< days since Sunday - [ 0 to 6 ] */
int8_t tm_mon; /**< months since January - [ 0 to 11 ] */
int16_t tm_year; /**< years since 1900 */
int16_t tm_yday; /**< days since January 1 - [ 0 to 365 ] */
int16_t tm_isdst; /**< Daylight Saving Time flag */
};
Скажите, Вы совсем не понимаете что написано в программе? Ни буквы?
У Вас что в строке №29 написано?
structtm *localtime(consttime_t *_timer);
Ну так, блин и пишите Serial.println(localtime.tm_mday);
Только, знаете, лучше бы Вы всё-таки немного изучили язык. Скоро Вас начнут просто посылать с такими вопросами, а их (вопросов) не уменьшится, т.к. Вам нужна подсказка по каждой запятой.
но в недрах инета указано что функция struct tm *localtime(const time_t *ptm);сохраняет его в структуре tm и возвращает указатель на нее, я и незнал что нужно повторно использывать туже функцию localtime
Serial.println(localtime.tm_wday); и все равно
F:\Arduino\тестирование\ServerDateTime\ServerDateTime.ino: In function 'void setup()':
ServerDateTime:33:28: error: request for member 'tm_wday' in 'localtime', which is of non-class type 'tm*(const time_t*) {aka tm*(const long int*)}'
exit status 1
request for member 'tm_wday' in 'localtime', which is of non-class type 'tm*(const time_t*) {aka tm*(const long int*)}'
но в недрах инета указано что функция struct tm *localtime(const time_t *ptm);сохраняет его в структуре tm и возвращает указатель на нее, я и незнал что нужно повторно использывать туже функцию localtime
простите, вы идиот полный? вам уже пять человек сказали. что вам сначала надо учебник прочитать?
Вот это вот:
struct tm *localtime(const time_t *ptm);
никакая не функция! Это обьявление указателя localtime, указывающего на структуру типа tm
Почему бы для начала не пойти и не прочитать, что такое структуры, что такое поле структуры и как с ним работать?
Вот и я про тоже. Вам одну строчку подсказали, Вы её написали, но это не помогло, потому, что у Вас ошибка в соседней (предыдущей) структура описана неправильно. И так будет бесконечно пока Вы не изучите язык.
простите, вы идиот полный? вам уже пять человек сказали. что вам сначала надо учебник прочитать?
Уважаемый...... ме можите помочь ок, но оскорблять это ..... вы тему головную видите "Песочница. Раздел для новичков" или по вашему новичок чел с 10 опытом кодировки ардуино или с++...
я прочел про структуры но реального примера похожего на мою ситуацию не нашел, прочел и про time.h.
ибо как минимум во второй, третьей и четвертой ссылке есть примеры с готовым кодом...
А все потому, что вы основ не знаете - вам даже примеры не помогают, потому что вы их не понимаете.
Update - справедливости ради надо отметить, что там выше, где я писал "localtime() - не функция" - фигню сморозил, таки функция. Но мне простительно, я ответ на ваш вопрос нашел в гугле за минуту.
Многие, я думаю, могли-бы вам этот код привести сразу, только это не совсем правильно.
Проверяя домашнее задание ребенку, пришел к такому выводу:
Исправляешь сам ошибки "тут нетак, правильно вот так" - занятие бесполезное, на этом к сожалению не учатся.
Кода говоришь "вот в этом задании ошибка, ищи где" - путь более сложный и более эффективный, но приходится жертвовать временем разбирая задания с ребенком.
а месяц тогда с 1 Serial.print(1 + tt->tm_mon); :)
чудеса
ну какие "чудеса" опять? смотрите комменты к структуре - вот и вашего же сообщения #51 копирую
struct tm {
int8_t tm_sec; /**< seconds after the minute - [ 0 to 59 ] */
int8_t tm_min; /**< minutes after the hour - [ 0 to 59 ] */
int8_t tm_hour; /**< hours since midnight - [ 0 to 23 ] */
int8_t tm_mday; /**< day of the month - [ 1 to 31 ] */
int8_t tm_wday; /**< days since Sunday - [ 0 to 6 ] */
int8_t tm_mon; /**< months since January - [ 0 to 11 ] */
int16_t tm_year; /**< years since 1900 */
int16_t tm_yday; /**< days since January 1 - [ 0 to 365 ] */
int16_t tm_isdst; /**< Daylight Saving Time flag */
};
Вам уже раза три сказали "читайте комментарии" и даже показали где именно читать. Толку, что Вы приводите кучу линок, если Вы их не читаете (или не понимаете).
Номер месяца начинается с нуля. а не с 1. Потому, октябрь "должно быть" 9!
нашел файл time.h
добавил #include <time.h>
заменил на Serial.println(tm_mday);
все равно пишет не задикларирована tm_mday
Это ужасно. Напоминает мне фильм "Идиократия".
А ругань можете привести? Полностью?
добавил #include <time.h>
заменил на Serial.println(tm_mday);
все равно пишет не задикларирована tm_mday
Скажите, Вы совсем не понимаете что написано в программе? Ни буквы?
У Вас что в строке №29 написано?
struct
tm *localtime(
const
time_t *_timer);
Ну так, блин и пишите Serial.println(localtime.tm_mday);
Только, знаете, лучше бы Вы всё-таки немного изучили язык. Скоро Вас начнут просто посылать с такими вопросами, а их (вопросов) не уменьшится, т.к. Вам нужна подсказка по каждой запятой.
Стоп! Вы в показаниях путаетесь! Что там у Вас tm_mday или tm_wday? надеюсь, Вы понимаете. что это разные вещи?
спасибо,
но в недрах инета указано что функция struct tm *localtime(const time_t *ptm);сохраняет его в структуре tm и возвращает указатель на нее, я и незнал что нужно повторно использывать туже функцию localtime
Serial.println(localtime.tm_wday); и все равно
а так
Serial.println(localtime->tm_wday);
но в недрах инета указано что функция struct tm *localtime(const time_t *ptm);сохраняет его в структуре tm и возвращает указатель на нее, я и незнал что нужно повторно использывать туже функцию localtime
простите, вы идиот полный? вам уже пять человек сказали. что вам сначала надо учебник прочитать?
Вот это вот:
struct tm *localtime(const time_t *ptm);
никакая не функция! Это обьявление указателя localtime, указывающего на структуру типа tm
Почему бы для начала не пойти и не прочитать, что такое структуры, что такое поле структуры и как с ним работать?
Тогда и идиотских вопросов не будет
Вот и я про тоже. Вам одну строчку подсказали, Вы её написали, но это не помогло, потому, что у Вас ошибка в соседней (предыдущей) структура описана неправильно. И так будет бесконечно пока Вы не изучите язык.
И что с того? А где указано, что её прямо так в виде объявления нужно в программу пихать?
простите, вы идиот полный? вам уже пять человек сказали. что вам сначала надо учебник прочитать?
Уважаемый...... ме можите помочь ок, но оскорблять это ..... вы тему головную видите "Песочница. Раздел для новичков" или по вашему новичок чел с 10 опытом кодировки ардуино или с++...
я прочел про структуры но реального примера похожего на мою ситуацию не нашел, прочел и про time.h.
не надо врать, ничего вы не читали
Вот, держите, у меня компилируется. Если у вас снова нет - ищите ошибку в своей голове
вуд
не надо врать, ничего вы не читали
Вам конечно виднее:
http://www.codenet.ru/progr/cpp/sprd/localtime.php
https://ejudge.ru/study/3sem/time.pdf
https://prog-cpp.ru/c-time-date/
http://cppstudio.com/post/616/
https://alexgyver.ru/lessons/arduino-reference/
и др
Вам конечно виднее:
ну тогда даж не знаю, что сказать :)))
ибо как минимум во второй, третьей и четвертой ссылке есть примеры с готовым кодом...
А все потому, что вы основ не знаете - вам даже примеры не помогают, потому что вы их не понимаете.
Update - справедливости ради надо отметить, что там выше, где я писал "localtime() - не функция" - фигню сморозил, таки функция. Но мне простительно, я ответ на ваш вопрос нашел в гугле за минуту.
и еще, если для вас очивидно
да не понимаю, но пытаюсь понять да путем проб и ошибок, вы что родились и сразу 100м рванули или как все ползали ходили и потом только бегали
и еще, если для вас очивидно
ну так что, мой код заработал или как?
и мне важно для себя понять почему мой код не сработал а ваш компилиться, это нигде не прочитаешь тут только опыт...
у меня в одном файле time.h так:
01
struct
tm {
02
int8_t tm_sec;
/**< seconds after the minute - [ 0 to 59 ] */
03
int8_t tm_min;
/**< minutes after the hour - [ 0 to 59 ] */
04
int8_t tm_hour;
/**< hours since midnight - [ 0 to 23 ] */
05
int8_t tm_mday;
/**< day of the month - [ 1 to 31 ] */
06
int8_t tm_wday;
/**< days since Sunday - [ 0 to 6 ] */
07
int8_t tm_mon;
/**< months since January - [ 0 to 11 ] */
08
int16_t tm_year;
/**< years since 1900 */
09
int16_t tm_yday;
/**< days since January 1 - [ 0 to 365 ] */
10
int16_t tm_isdst;
/**< Daylight Saving Time flag */
11
};
в другом ссылка на #include "TimeLib.h" в котором:
и для меня это пока темный лес
вот так получилось :)
30.9.119 хотя должно было 30.10.2019
а время правильно
а время правильно
где-то у тебя ошибки - 1572473968 - это 49 лет и почти 10 месяцев, так что дата должна быть правильной
Проверяя домашнее задание ребенку, пришел к такому выводу:
Исправляешь сам ошибки "тут нетак, правильно вот так" - занятие бесполезное, на этом к сожалению не учатся.
Кода говоришь "вот в этом задании ошибка, ищи где" - путь более сложный и более эффективный, но приходится жертвовать временем разбирая задания с ребенком.
а, кстати год, скорее всего, считается с 1900.
Так что правильный год, это
а месяц с нуля - читай комментарии в библиотеке:
запросил без параметров все рано:
а месяц тогда с 1
Serial
.print(1 + tt->tm_mon); :)
чудеса
а месяц тогда с 1
Serial
.print(1 + tt->tm_mon); :)
чудеса
ну какие "чудеса" опять? смотрите комменты к структуре - вот и вашего же сообщения #51 копирую
Я беру свои последние слова в этой теме обратно. Можно. Был не прав, признаю.
хотя должно было 30.10.2019
Кому должно?
Вам уже раза три сказали "читайте комментарии" и даже показали где именно читать. Толку, что Вы приводите кучу линок, если Вы их не читаете (или не понимаете).
Номер месяца начинается с нуля. а не с 1. Потому, октябрь "должно быть" 9!