HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 11.09.2023, 15:49
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Описание: Класс для работы с датой и временем по Интернет-стандарту. Класс предназначен для работы с Windows и работает с его API. Временные зоны берутся из реестра Windows. Вы можете найти их всех по этому пути:
Код:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
. Все функции задокументированы в коде, вы можете разобраться сами, посмотрев файл
Код:
src/date_time.h
. Метод
Код:
date_time::current
использует время UTC без часового пояса. Вы можете установить пояс самостоятельно, используя
Код:
date_time::set_timezone
. Вы так же можете инициализировать класс с помощью timestamp.

Демонстрация:

Очень краткий пример всего функционала: парсинг и форматирование по стандарту ISO_8601, а также указание начального часового пояса.

C++:





[CODE]
std
::
cout



Вы можете добавить/отнять секунды/минуты/часы/дни через std::chrono:

C++:





[CODE]
using
namespace
std
::
chrono_literals
;
std
::
cout



Исходник: https://github.com/Receiver1/date_time
 
Ответить с цитированием

  #2  
Старый 11.09.2023, 19:35
Digger Man52
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами: 3596877

Репутация: 183


По умолчанию

У Буста есть date time, по сути он более практичен в этих вопросах
 
Ответить с цитированием

  #3  
Старый 11.09.2023, 19:45
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

просто оставлю это здесь:

std::chrono::time_zone - cppreference.com
 
Ответить с цитированием

  #4  
Старый 11.09.2023, 20:32
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от kin4stat  

просто оставлю это здесь:

std::chrono::time_zone - cppreference.com
https://lightrun.com/answers/compil...-stdchronocurrent_zone-crashes-on-msvc-builds

Если ты не знал std::chrono::time_zone крашит на большинстве сборок Windows из-за устаревшей версии icu.dll, потому что Microsoft забыли поместить новую DLL в VC++ Redistributable. Почему-то обновлять его они не очень спешат. Ещё std::chrono::time_zone нужно инетрнет соединение для парсинга базы данных IANA

Цитата:
Сообщение от Digger Man  

У Буста есть date time, по сути он более практичен в этих вопросах
Хорошо, подключай себе в проект boost datetime, который тянет за собой ещё несколько библиотек. И это всё ради того чтобы в паре мест обработать приходящее с сервера время.
 
Ответить с цитированием

  #5  
Старый 11.09.2023, 23:45
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от Receiver  

Хорошо, подключай себе в проект boost datetime, который тянет за собой ещё несколько библиотек. И это всё ради того чтобы в паре мест обработать приходящее с сервера время.
bro just use vcpkg
 
Ответить с цитированием

  #6  
Старый 12.09.2023, 07:51
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Цитата:
Сообщение от kin4stat  

bro just use vcpkg
так это не отменяет того что у тебя бинарник будет весит мегабайт как минимум(или еще хуже дллки будут какие-то рядом валятся)
 
Ответить с цитированием

  #7  
Старый 12.09.2023, 11:00
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от F0RQU1N and  

так это не отменяет того что у тебя бинарник будет весит мегабайт как минимум(или еще хуже дллки будут какие-то рядом валятся)
Сейчас бы 200 кб экономить в 2023, когда рядом Discord на электроне не думает даже об экономии мегабайтов
 
Ответить с цитированием

  #8  
Старый 12.09.2023, 11:42
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от F0RQU1N and  

так это не отменяет того что у тебя бинарник будет весит мегабайт как минимум(или еще хуже дллки будут какие-то рядом валятся)
Если линкуешь статически, то DLL'ок не будет. На счёт веса полная правда.

Цитата:
Сообщение от kin4stat  

Сейчас бы 200 кб экономить в 2023, когда рядом Discord на электроне не думает даже об экономии мегабайтов
Тем не менее тащить за собой кучу кода ради одного datetime не очень сообразительно. Если ты хороший разработчик, то должен позаботится так же о размере бинарника. Ты сможешь предугадать как он будет вести себя под протектом? Ты сможешь предугадать как он поведёт себя в незвестной среде выполнения? Сейчас расскажу забавный факт: оказыватся OpenSSL при инициализации вызывает под капотом GetModuleHandleW, который всего возвращает NULL под EAC. Реализация boost независима от системы, в то время как этот класс заточен конкретно под Windows без лишних запросов и библиотек. Он использует всего 1 импорт, который есть во всех сборках Windows - advapi32.dll. Тоже самое касается и OpenSSL: какой смысл тянуть себе в проект такую обширную библиотеку ради шифрования, когда есть CNG и ты точно знаешь что твое приложение будет работать только под Windows?

Обновление от 12.09.2023:
  • Добавлены операторы для работы с
    Код:
    value_type = long long
    ;
  • Исправлен код операторов сложения и вычитания;
 
Ответить с цитированием

  #9  
Старый 12.09.2023, 14:06
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от Receiver  

Тем не менее тащить за собой кучу кода ради одного datetime не очень сообразительно. Если ты хороший разработчик, то должен позаботится так же о размере бинарника. Ты сможешь предугадать как он будет вести себя под протектом?
NIH-синдром короче, понятно.

Я бы предпочел все же проверенную временем библиотеку
 
Ответить с цитированием

  #10  
Старый 12.09.2023, 16:01
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Цитата:
Сообщение от Receiver  

Если линкуешь статически, то DLL'ок не будет. На счёт веса полная правда.
ну так я про это и сказал если статик то большой вес, если нет то дохуя дллок всяких))))
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.