Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Сколько дней осталось до нового года?
rora
Отправлено: 14 Ноября, 2022 - 20:47:49
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Нояб. 2022  
Репутация: 0




Как взять дату от сюда(для просмотра ссылки Вам необходимо авторизоваться) и сравнить её
1) с 1.01.2023 и узнать сколько дней осталось до НГ?
2) Узнать сколько дней прошло после НГ ?
 
 Top
rora
Отправлено: 15 Ноября, 2022 - 00:30:17
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Нояб. 2022  
Репутация: 0




Получилось так, но точность хромает из за количества дней в месяце.

вопрос как вытащить дату из(для просмотра ссылки Вам необходимо авторизоваться) ещё актуален.


CODE:

int hour=3600000/1000;
int day=hour*24;
int month=day*31;
int year=month*12;

int dayX = dateToSecond(15,12,2022);
int today = dateToSecond(15,11,2022);

int d1 = dayX;
int d2 = today;
int diff = (d1 - d2)/86400;

messagebox(diff);


function dateToSecond(int d, int m, int y)
{
return (day*d)+(month*m)+(year*y);
}
 
 Top
Zireael
Отправлено: 15 Ноября, 2022 - 03:36:06
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
как вытащить дату из(для просмотра ссылки Вам необходимо авторизоваться)

CODE:
string S;
if(sendgetweb(#S, "Mozilla", "GET", "https:/^/tools.aimylogic.com", "api/now?tz=Europe/Moscow&format=dd/MM/yyyy")>0)
{
messagebox (S);
parserjson(json, S);

messagebox("formatted = " + json.formatted);
messagebox("day = " + json.day);
messagebox("month = " + json.month);
messagebox("year = " + json.year);
}
else messagebox("sendgetweb error");

 Цитата:
Как взять дату от сюда(для просмотра ссылки Вам необходимо авторизоваться) и сравнить её
1) с 1.01.2023 и узнать сколько дней осталось до НГ?

CODE:
external(INT, "gmtime", "gmtime", "msvcrt.dll");
external(INT, "_mkgmtime", "_mkgmtime", "msvcrt.dll");
external(INT, "GetTimeZoneInformation", "GetTimeZoneInformation", "Kernel32.dll");

string S;
if(sendgetweb(#S, "Mozilla", "GET", "https:/^/tools.aimylogic.com", "api/now?tz=Europe/Moscow&format=dd/MM/yyyy")>0)
{
parserjson(json, S);

char TZI[172];
string rn = "^r^n";
int timestamp = formatsn(json.timestamp) / 1000;
GetTimeZoneInformation(address(#TZI[0]));
int timezone = codhexi(#TZI[0], 4) * 60;
int new_year = formatsn(json.year) + 1 - 1900;
int tm2[9] = {0, 0, 0, 1, 0, new_year, 0, 0, 0};
int timestamp2 = _mkgmtime(address(#tm2[0]));
int timestamp3 = timestamp2 - timestamp + timezone;
if(timestamp3 > 0)
{
int t = gmtime(address(#timestamp3));
messagebox(
"До нового года осталось:"+rn+
"Месяцев: " + format(addressi(t+16))+rn+
"Дней: " + format(addressi(t+12) - 1)+rn+
"Часов: "+ format(addressi(t+8))+rn+
"Минут: " + format(addressi(t+4))+rn+
"Секунд: " + format(addressi(t+0))
);
}
else messagebox("timestamp3 < 0");
}
else messagebox("sendgetweb error");
 
 Top
rora
Отправлено: 15 Ноября, 2022 - 12:18:07
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Нояб. 2022  
Репутация: 0




Спасибо за помощь, подскажите по этим строчкам, что они делают? Для получения второй даты? Как указать другую?

CODE:
int new_year = formatsn(json.year) + 1 - 1900; // 2022+1-1900 = 123 для чего нам оно?
int tm2[9] = {0, 0, 0, 1, 0, new_year, 0, 0, 0};//
int timestamp2 = _mkgmtime(address(#tm2[0]));//
 
 Top
Zireael
Отправлено: 15 Ноября, 2022 - 12:40:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
int new_year = formatsn(json.year) + 1 - 1900; // год, начиная с 1900 года
int tm2[9] = {0, 0, 0, 1, 0, new_year, 0, 0, 0};// заполнение struct tm
int timestamp2 = _mkgmtime(address(#tm2[0]));// получить метку времени из структуры tm

CODE:
external(INT, "_mkgmtime", "_mkgmtime", "msvcrt.dll");

int tm[9] = {15, 8, 20, 2, 3, 123, 0, 0, 0}; // 2 апреля 2023 20:08:15
/* поля структуры
int tm_sec; // секунды
int tm_min; // минуты
int tm_hour; // часы
int tm_mday; // дни (1-31)
int tm_mon; // месяца (0-11)
int tm_year; // год, начиная с 1900, т. е. для 2023 будет 123
int tm_wday; // день недели (0 — 6)
int tm_yday; // дней в году
int tm_isdst; // флаг летнего времени
*/

int timestamp = _mkgmtime(address(#tm[0]));
messagebox(timestamp); // количество секунд прошедших с 1 января 1970 года
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by