Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Класс позволяет получать разность между двумя датами, складывать даты, а так же производить другие арифметические действия и преобразования с датами, проверять год на високосность и т.д.

Функциональность

С обьектами класса, представляющими дату можно проводить такие операции:

- создавать из строк вида "1,1,2000" или "02.03.1999". Внимание, "2.2.99" соответствует 0099 году.
даты только после Рождества Христова.:)
или указывать при создании. CdmsDate a1(1.1.2001);

- После создания обьекта дату можно изменить
задавая каждый элемент даты. a1.SetDay(1); a1.SetMonth(1); a1.SetYear(2000)
задавая всю дату a1.SetDate(2,2,1998);
задавая дату строкой a1.SetDateStr("1.1.2001");
оператором присваивания a1="1.1.2001" или a1=b1, где b1 - тоже некая дата или строка.

- Получать доступ
к элементам day=a1.GetDay(); month=a1.GetMonth(); year=a1.GetYear;
к строковому представлению char datestr[11]; strcpy(datestr,a1.tstr())

- сравнивать. bool b=(CdmsDate)"2.2.2000">"1.2.2000"; if(a1==b1) где b1 - строка или другая дата.

- складывать
1) две даты. CdmsDate b1(2.2.2); a1+=b1 или CdmsDate a2=a1+b1. Так мы узнаем какая дата
будет через два года, два дня и два месяца после даты a1
2) Дату и число. CdmsDate a2=a1+n или a1+=n где int n=19 некое число. Так мы узнаем какая
дата будет через n дней после даты a1

- вычитать
1) из даты дату. _Только_ оператором -=. a1-=b1, где CdmsDate b1(3.3.0) или char b1="3.3.0"
(при b1- строке автоматом преобразует b1 в дату). Тогда в a1 будет дата, которая была 3
месяца и три дня назад. (для данного примера)
2) из даты дату и получиь число. _ТОЛЬКО_ оператором -. int n=a1-b1. где a1 - дата, b1 - дата
или строка. (две строки нельзя, т.к. комп не догадаеться, к чему конвертить строки). Таким
образом _МЫ_ _ПОЛУЧИМ_ _КОЛИЧЕСТВО_ _ДНЕЙ_ _РАЗДЕЛЯЮЩИХ_ _ЭТИ_ _ДВЕ_
_ДАТЫ_ например между 3.3.2000 и 28.2.2000 будет 4 дня. Если из меньшей вычитать
большую получим отрицательное число. Например a1(3.3.2001)-"3.4.2001"=-31
3) вычитать из даты число. a1-=n или CdmsDate a2=a1-n; так мы узнаем, какая дата была n дней
назад.

ЗАМЕЧАНИЕ:
1) При всех операциях "сегодняшнее" число , не учитывается. например через 2 дня от 1.1.2001
будет 3.1.2001 а не 2.1.2001 а за два дня до 4.1.2001 было 2.1.2001 а не 3.1.2001.
2) Проверка года на високосность есть.

Планируемые дополнения:
1) добавить оператор вывода в поток. cin<<"a1="<<a1<<"\r\n"; //где a1 - обьект класса CdmsDate
2) добавить оператор преобразования к char* вместо функции .tstr(). char[11]strdate;
strcpy(strdate,a1);//где a1- обьект CdmsDate
3) добывить дни недели и возможность с нимим работать, узнавать какой день недели был 1.1
2001 основываясь на дне недели 2.2.2002. 4) все что вы мне напишите :) (если конечно не
очень много.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS