Обзор Введение Лицензионное соглашение Рассылка Цены Ссылки Разработчик Delphi Русскоязычные Англоязычные Сайты, посвященные Delphi Англоязычные Пиратские сайты Русскоязычные Другие Домашние страницы Русскоязычные Алгоритмы Преобразования HEX#8594;Integer Преобразование десятичного числа в шестнадцатиричное Преобразование ASCII в шестнадцатиричное представление Преобразование двоичного числа в десятичное Преобразование ICO в BMP Unix-строки (чтение и запись Unix-файлов) Преобразование BMP в JPEG в Delphi 3 Декомпиляция звукового файла формата Wave и получение звуковых данных Даты Вычисление даты Пасхи Дни недели Формат даты Функция DateSer Разное Ханойская башня Алгоритм (уравнение) для определения восхода/захода солнца и луны (BASIC) Автоматический формат даты в компоненте Edit Win API Переменные среды Получение переменных DOS Изменение системного времени из Delphi Завершение работы Windows События, происходящие в приложениях Delphi при завершении работы Windows Завершение работы Windows Режим энергосбережения (Power saver) Управление монитором Разное Как не допустить запуск второй копии программы? Каким образом, программным путем, можно узнать о завершении запущенной программы? Получение имени модуля Извлечение из EXE-файла иконки и рисование ее в TImage. Паскаль Массивы Динамические массивы Массив в Delphi Базы данных Создание Создание db-файла во время работы приложения Доступ Очень медленный доступ к таблице при первом обращении Поиск Поиск величины при вводе Быстрый поиск в базах данных Калькуляция Хитрость OnCalcFields dBASE Таблицы dBASE: Структура .DBF-файла Разное Сканирование версии структуры базы данных Перемещение таблиц Прокрутка таблицы: хитрость PeekMessage() BDE Псевдонимы Задание псевдонима программным путем Информация о псевдонимах BDE Мультимедиа Аудио-компакт Получение идентификатора диска Аппаратное обеспечение CD-ROM Открытие и закрытие привода CD-ROM Операционная система Буфер обмена Просмотр буфера обмена Копирование в буфер обмена Форма как графический объект Компоненты BitBtn Смена иконки BitBtn во время работы приложения DBGrid Использование опции MultiSelect в DBGRID Edit Массив Edit-компонентов Label 3D-рамка для текстовых компонентов ScrollBox Синхронизация двух компонентов Scrollbox Splitter Конструирование Splitter StatusBar Обработчик события OwnerDraw в компоненте StatusBar StringGrid Установка атрибутов –=Только для чтения=– у столбцов компонента StringGrid Помещение изображения в ячейку StringGrid Сохранение и чтение Tstringgrid TabbedNotebook Добавление элементов управления в TTabbedNotebook и TNotebook Недоступная закладка в компоненте Tabbednotebook Table Создание компонента TTable без формы TreeView Ускорение работы TreeView Разное Создание компонента во время работы приложения Получение индекса компонента в списке родителя Массив компонентов… Дублирование компонентов и их потомков во время выполнения приложения События Создание Создание события во время выполнения приложения Задержка выполнения Задержка выполнения OnChange (Delphi 2) Миграция Delphi3 Получение констант с определением ошибки функцией LoadStr Ошибки Delphi2 Ошибка в руководстве "Getting Started" на странице 42
Функция DateSer Привет, я хочу в качестве совета поделиться функцией DateSer, которую я написал перед этим на VB. Данная функция весьма полезна но, к сожалению, ее нет в Delphi. Применяется она так:
DecodeDate(Date,y,m,d);
NewDate:= DateSer(y-4,m+254,d+1234);
или приблизительно так….
function DateSer(y,m,d: Integer): TDateTime;
const
mj: array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
var
add: Integer;
begin
while (true) do begin
y:=y+(m-1) div 12;
m:= (m-1) mod 12 +1;
if mlt;=0 then begin
Inc(m,12);
Dec(y);
end;
if ((y mod 4 = 0) and ((y mod 100lt;gt;0) or (y mod 400=0))) and (m=2) then add:=1 //дополнительный день в феврале
else add:=0;
if (dgt;0) and (dlt;=(mj[m]+add)) then break;
if dgt;0 then begin Dec(d,mj[m]+add); Inc(m); end
else begin Inc(d,mj[m]+add); Dec(m); end;
end;
Result:=EncodeDate(y,m,d);
end;