Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

 Memo1.Lines.Insert(0, s);

 Memo1.SetFocus;

 Memo1.SelStart := Length(s);

 Memo1.SelLength := 0;

Вычисление даты Пасхи II

Delphi 1

function easter (year: integer): tdatetime;

{----------------------------------------------------------------}

{
Вычисляет и возвращает день Пасхи определенного года. }

{ Идея принадлежит Mark Lussier, AppVision <MLussier@best.com>. }

{ Скорректировано для предотвращения переполнения целых, если по }

{ ошибке передан год с числом 6554 или более. }

{----------------------------------------------------------------}

var

 nMonth, nDay, nMoon, nEpact, nSunday,

 nGold, nCent, nCorx, nCorz: Integer;

begin

 { Номер Золотого Года в 19-летнем Metonic-цикле: }

 nGold := (Year mod 19) + 1;

 { Вычисляем столетие: }

 nCent := (Year div 100) + 1;

 { Количество лет, в течение которых отслеживаются високосные года… }

 { для синхронизации с движением солнца: }

 nCorx := (3 * nCent) div 4 – 12;

 { Специальная коррекция для синхронизации Пасхи с орбитой луны: }

 nCorz := (8 * nCent + 5) div 25 – 5;

 { Находим воскресенье: }

 nSunday := (Longint(5) * Year) div 4 – ncorx – 10;

 { ^ Предохраняем переполнение года за отметку 6554}

 { Устанавливаем Epact – определяем момент полной луны: }

 nEpact := (11 * nGold + 20 + nCorz – nCorx) mod 30;

 if nepact < 0 then nEpact := nEpact + 30;

 if ((nepact = 25) and (ngold > 11)) or (nepact = 24) then nEpact := nEpact + 1;

 { Ищем полную луну: }

 nMoon := 44 – nEpact;

 if nmoon < 21 then nMoon := nMoon + 30;

 { Позиционируем на воскресенье: }

 nMoon := nMoon + 7 – ((nSunday + nMoon) mod 7);

 if nmoon &gtl 31 then

 begin

nMonth := 4;

nDay := nMoon – 31;

 end

 else

 begin

nMonth := 3;

nDay := nMoon;

 end;

 Easter := EncodeDate(Year, nMonth, nDay);

end; {easter}

Преобразование

даты в количество секунд

Delphi 1

EncodeDate возвращает объект TDateTime, который просто является double-числом. Для получения количества миллисекунд с даты 1/1/0001, умножьте результат на 86400000.0 Но чтобы избежать переполнения, лучше пользоваться более поздней датой.

Преобразование даты в неделю

Delphi 1

procedure TForm1.Button1Click(Sender: TObject);

var frstDay,toDay : TDateTime; week : Integer;

begin

 frstDay := StrToDate('1/1/96');

 toDay := StrToDate(Edit1.Text);

 week := Trunc((toDay - frstDay) / 7) + 1;

 Label1.Caption := IntToStr(week);

end;

Преобразование даты

Delphi 1

procedure TForm1.Button1Click(Sender: TObject);

var

 st,formatsave : string;

 DT : TDateTime;

begin

 st := Edit1.text; // '1996-06-03 00.00.00'

 formatsave := ShortDateFormat;

 ShortDateFormat := 'yyyy.mm.dd hh.mm.ss';

 while pos ('-', st) > 0 do st [pos ('-', st)] := '.';

 DT := StrToDateTime(st);

 ShortDateFormat := formatsave;

 Label1.Caption := DateTimeToStr(DT);

end;

Преобразование даты — добавление столетия

Delphi 1

LongDate := FormatDateTime('ddmmyyyy', StrToDate(ShortDate));

Поделиться:
Популярные книги

Sos! Мой босс кровосос!

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Sos! Мой босс кровосос!

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Я – Орк

Лисицин Евгений
1. Я — Орк
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я – Орк

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Законы Рода. Том 4

Flow Ascold
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4

Промышленникъ

Кулаков Алексей Иванович
3. Александр Агренев
Приключения:
исторические приключения
9.13
рейтинг книги
Промышленникъ

Адъютант

Демиров Леонид
2. Мания крафта
Фантастика:
фэнтези
6.43
рейтинг книги
Адъютант

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Измена. Не прощу

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Измена. Не прощу

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый