powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / а вот кому велосипед?
20 сообщений из 20, страница 1 из 1
а вот кому велосипед?
    #32970397
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
велосипед заключается в следующем:
класс TSYSTEMTIME для работы с датой/временем.

вот пример работы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>
#include <system/tsystemtime.h>

using namespace std;

int main()
{
 printf("%02i\n", 12 );
 printf("Start test TSYSTEMTIME\n");
 TSYSTEMTIME st;
 printf("now is %s\n",st.dateTimeToStr().c_str());
 st.wSecond-= 70 ;
 printf("wSecond-=70 %s\n",st.dateTimeToStr().c_str());
}

для преобразования даты в строку используется std::string.
нет преобразования из строки в дату/время
нет форматирования, формат жестко зашит. по виду dd.mm.yyyy hh:mm:ss

кроссплатформенный по идее, но проверял только win32/FreeBSD

для компиляции под win32 нужно задефайнить в проекте
#define __WIN32__
или в опциях компилятора
-D__WIN32__


хотелось бы увидеть полезные отклики и результаты тестирования на других платформах.
а так же мысль, может ли быть такой велосипед полезен?
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32970398
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к стати, using namespace std в примере я привел по привычке :-) он там не нужен...
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32970485
Siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_kа так же мысль, может ли быть такой велосипед полезен?
Любой велосипед полезен априори, хотябы как ещё одна тренировка по сборке велосипедов.
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32974824
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kхотелось бы увидеть полезные отклики и результаты тестирования на других платформах.
а так же мысль, может ли быть такой велосипед полезен?

Есть такой велосипед = www.boost.org
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32974885
fixit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а матацикл магещ?
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32974938
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю над матациклам :-)
сначала лисапед дострою :-)
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32976551
Siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слушайте, а давайте, может у кого какие есть надобности на всякие такие языковые конструкции. Давайте их сюда, может A_k их сделает?
А то он строит велосипед сначала, а потом его раздаёт. А может быть ведь наоборот, сначала раздать, а потом построить :)
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32977341
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мине нада написать свои std::vector и std::map. Без шабнонов. С поддержкой всей функциональности шаблонных MFC::CArray и MFC::CMap (мап пофигу какой, можно на дереве, можно на хэше, только чтоб быстро и универсально работал). Нужно все кросплатформенное. Выделение памяти стандартное С++. Кроме этого нужно не использовать конструкторы для копирования объектов внутри коллекций (как в STL), а использовать для этого спец. функции, возможно, задаваемые явно, и нужно различать перемещение элемента из одного вн. буфера в другой и вставку/удаление элемента (чего нет в STL и от чего собственно и страдаю).

Ну чё, беретесь ?
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32977549
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не мужыки :-) я только своими велосипедами занимаюсь
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #32979468
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль. Я уже и губу раскатал...
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33098802
Кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что увидел с ходу.

if (wYear()%4==0) return 366; else return 365; - неверно

должно быть if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) return 366; else return 365;

Почитайте про високосный год в книжках.

Отдельного кода под Win32 можно было бы не писать. Виндовый <time.h> не хуже.

void incValue(int cv)
{
#ifdef __WIN32__
long long li;
memcpy(&li,&value,8);
li+=10000000LL*cv;
memcpy(&value,&li,8);
#else
value+=cv;
#endif
init();
};

LL и long long очепятка?

Всякие 60*60 и 60*60*24 повторяются многократно. Заменить бы на одну константную вещь.
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33098848
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
большое спасибо за замеания. я с тех пор несколько переделал этот класс,
но всеравно.

Кодер
Что увидел с ходу.

if (wYear()%4==0) return 366; else return 365; - неверно

должно быть if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) return
366; else return 365;

Почитайте про високосный год в книжках.

спасибо, обязательно исправлю.

Кодер

void incValue(int cv)
{
#ifdef __WIN32__
long long li;
memcpy(&li,&value,8);
li+=10000000LL*cv;
memcpy(&value,&li,8);
#else
value+=cv;
#endif
init();
};

LL и long long очепятка?


не понял. что не так?

Кодер
Всякие 60*60 и 60*60*24 повторяются многократно. Заменить бы на одну
константную вещь.

да, в принципе, компилятор сам же это сделает? мне показалось что так
понятнее при чтении кода.

Кодер

Отдельного кода под Win32 можно было бы не писать. Виндовый <time.h> не
хуже.

а он в стандарт входит?
в принципе мне хватило бы чтобы его msvc компилил и mingw под виндами....


в общем спасибо, принимаю к сведению, подправлю - выложу снова
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33098877
Кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_k
не понял. что не так?


В VC++ 6.0 нет long long


alex_k
да, в принципе, компилятор сам же это сделает? мне показалось что так
понятнее при чтении кода.


Понятнее на константу с хороше мнемоникой.

alex_k
а он в стандарт входит?
в принципе мне хватило бы чтобы его msvc компилил и mingw под виндами....

Это ANSI стандарт
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100621
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начал переделывать под sys/times.h
и столкнулся с тем что не могу оперировать с датами раньше 1971 года...
это руки у меня кривые?
все упирается в time_t которая в MinGW определена как long.
или я гоню?
и что делать то вообще?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100675
Кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_k
начал переделывать под sys/times.h
и столкнулся с тем что не могу оперировать с датами раньше 1971 года...
это руки у меня кривые?
все упирается в time_t которая в MinGW определена как long.
или я гоню?
и что делать то вообще?


time_t содержит количество секунд от 1 Янв. 1970. Мне не было нужды в таких старых датах. Можно попробовать localtime свою написать. Я так понял, что из <time.h> это единственное, что ты используешь.
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100745
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это класс уже активно использую в проектах связанных с бд(firebird)
и вполне можно представить что мне понадобится(к примеру) обрабатывать
даты рождения сотрудников.

Переписывать то, что определено стандартом - мне как-то не хочется :-)
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100746
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что получилось, зацените :)
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100747
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
виноват :-)
вот то что получилось
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100750
Кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_kвиноват :-)
вот то что получилось

Уже лучше. Количество дней в месяцах в массив загони.
...
Рейтинг: 0 / 0
а вот кому велосипед?
    #33100770
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
массив не стал делать, сделал так:
28+(month_days1>>m)&3

где month_days1 - это массив 2ух битовых чисел, обозначающих на сколько этот месяц больше 28 дней :-)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / а вот кому велосипед?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]