Блог им. elektroyar
boost::posix_time, std, boost ::chrono… надо учиться эффективно использовать чужие велосипеды, иначе легко завязнуть в своих...
Данная библиотека представляет собой сборник алгоритмов, классов, функций и констант для удобной работы с временем:
Форматы времени, с которыми работает библиотека:
Файлы ztime.hpp, ztime_cpu_time.hpp, ztime_ntp.hpp содержат подробные комментарии.
Для хранения и преобразования меток времени используется тип данных uint64, поэтому у данной библиотеки нет проблемы 2038 года
Примеры использования различных функций и классов можно найти в папке code_blocks/test.
Пример использования
#include <iostream> #include "ztime_ntp.hpp" #include "ztime.hpp" int main() { ztime::ntp::init(); // Time synchronized with the Internet std::cout << "ntp timestamp (us): " << ztime::ntp::get_timestamp_us() << std::endl; std::cout << "ntp timestamp (s): " << ztime::ntp::get_timestamp() << std::endl; std::cout << "ntp timestamp (s): " << ztime::ntp::get_ftimestamp() << std::endl; std::cout << "ntp offset (us): " << ztime::ntp::get_offset_us() << std::endl; // Computer time std::cout << "pc timestamp (us): " << ztime::get_timestamp_us() << std::endl; std::cout << "pc timestamp (s): " << ztime::get_timestamp() << std::endl; std::cout << "pc timestamp (s): " << ztime::get_ftimestamp() << std::endl; // Date std::cout << "date: " << ztime::get_timestamp(17, 5, 2021) << std::endl; std::cout << "date: " << ztime::get_timestamp(17, 5, 2021, 11, 5, 50) << std::endl; DateTime iTime(12, 6, 2013, 15, 23, 01); iTime = DateTime("2013-12-06T15:23:01+00:00"); ztime::timestamp_t timestamp = iTime.get_timestamp(); // translating GMT time during CET DateTime iTimeCET(convert_gmt_to_cet(timestamp)); timestamp = iTimeCET.get_timestamp(); std::cout << "date: " << ztime::get_str_date_time(timestamp) << std::endl; // Julian day std::cout << "jd: " << ztime::get_julian_date(17.5, 5, 2021) << std::endl; std::cout << "jd: " << ztime::get_julian_date(17, 5, 2021, 11, 5, 50) << std::endl; std::cout << "jdn: " << ztime::get_julian_day_number(1, 1, 1970) << std::endl; // Moon Phase ztime::MoonPhase moon_phase; moon_phase.init(ztime::get_ftimestamp(18, 5, 2021, 0, 0,0)); std::cout << "age: " << moon_phase.age << std::endl; std::cout << "age_in_degrees: " << moon_phase.age_in_degrees << std::endl; std::cout << "phase: " << moon_phase.phase << std::endl; std::cout << "get_moon_phase: " << ztime::get_moon_phase(ztime::get_ftimestamp(18, 5, 2021, 0, 0, 0)) << std::endl; std::cout << "get_moon_phase: " << ztime::get_moon_phase_v2(ztime::get_ftimestamp(18, 5, 2021, 0, 0, 0)) << std::endl; std::cout << "get_moon_age: " << ztime::get_moon_age(ztime::get_ftimestamp(18, 5, 2021, 0, 0,0)) << std::endl; return 0; }
Репозиторий тут
фазы Луны это круто. Где бы взять какой-нибудь простецкий csv или xls файл с этими данными. А еще бы файл такого же типа, но с актуальным переводом американского времени в наше российское. И все это года с 2015 по н.в.
А хипстеры все делают какие-то ни разу не практичные вещи на
а у меня все руки не доходят до тестов, все данных в нормальном виде нет, а мастерить лень :)
Хотя в книжке https://smart-lab.ru/books/encyclopedia-torgovyh-strategiy/ говорят, что не работает, так у них там ничего не работает, с таким то подходом.
так ты программист и айтишник, тебе проще. А мне для любого такого действия надо ОЧЕНЬ сильно напрягаться, я лучше в других местах понапрягаюсь, это будет более эффективно.