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

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

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

> Описание: Как рассчитать или получить номер недели в году
a300
Отправлено: 14 Сентября, 2022 - 23:42:15
Post Id



Пользователь
Наблюдатель


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




Добрый день.
Кто сможет подсказать как получить номер недели в году в Кибор или может у кого есть уже готовая функция?
Третий день пытаюсь понять как, но пока ни чего не смог придумать.
 
 Top
Zireael
Отправлено: 15 Сентября, 2022 - 03:01:24
Post Id



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


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




Для текущей даты:
CODE:
external(INT, "strftime", "strftime", "msvcrt.dll");
external(INT, "localtime", "_localtime32_s", "msvcrt.dll");
external(INT, "time", "time", "msvcrt.dll");

int Week = GetNumberWeek();
messagebox(Week);


function GetNumberWeek()
{
int timestamp = time(0);
int tm[9];
char buffer[3];
localtime(address(#tm[0]), address(#timestamp));
strftime(address(#buffer[0]), sizearray(buffer), "%W", address(#tm[0]));
return formatsn(format(#buffer[0]));
}
 
 Top
a300
Отправлено: 15 Сентября, 2022 - 04:10:46
Post Id



Пользователь
Наблюдатель


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




Спасибо. То что надо!
 
 Top
a300
Отправлено: 01 Марта, 2025 - 06:40:46
Post Id



Пользователь
Наблюдатель


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




 Zireael пишет:
Для текущей даты:
CODE:
external(INT, "strftime", "strftime", "msvcrt.dll");
external(INT, "localtime", "_localtime32_s", "msvcrt.dll");
external(INT, "time", "time", "msvcrt.dll");

int Week = GetNumberWeek();
messagebox(Week);


function GetNumberWeek()
{
int timestamp = time(0);
int tm[9];
char buffer[3];
localtime(address(#tm[0]), address(#timestamp));
strftime(address(#buffer[0]), sizearray(buffer), "%W", address(#tm[0]));
return formatsn(format(#buffer[0]));
}


Добрый день.
Подскажите почему показывает не правильный номер недели, сейчас 9-я неделя, показывает что 8-я неделя?
 
 Top
Zireael
Отправлено: 01 Марта, 2025 - 14:27:10
Post Id



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


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




 Цитата:
Подскажите почему показывает не правильный номер недели, сейчас 9-я неделя, показывает что 8-я неделя?

Отсчёт начинается с 0.
 
 Top
a300
Отправлено: 03 Марта, 2025 - 12:43:14
Post Id



Пользователь
Наблюдатель


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




Странно, тогда почему с 22 года до 24 включительно, всё совпадало, а с 25 вдруг с 0-го и перестало совпадать?

PS Хотя вроде разобрался там так совпало.

(Отредактировано автором: 03 Марта, 2025 - 12:48:20)

 
 Top
Zireael
Отправлено: 03 Марта, 2025 - 12:56:18
Post Id



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


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




https://learn.microsoft.com/en-u...-l?view=msvc-170

 Цитата:
%W Week number of the year as a decimal number (00 - 53), where the first Monday is the first day of week 1
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by