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

•  DeLiKaTeS Tetris (Тетрис)  125

•  TDictionary Custom Sort  3 312

•  Fast Watermark Sources  3 062

•  3D Designer  4 818

•  Sik Screen Capture  3 314

•  Patch Maker  3 528

•  Айболит (remote control)  3 628

•  ListBox Drag & Drop  2 992

•  Доска для игры Реверси  81 540

•  Графические эффекты  3 922

•  Рисование по маске  3 227

•  Перетаскивание изображений  2 608

•  Canvas Drawing  2 732

•  Рисование Луны  2 556

•  Поворот изображения  2 163

•  Рисование стержней  2 160

•  Paint on Shape  1 564

•  Генератор кроссвордов  2 224

•  Головоломка Paletto  1 764

•  Теорема Монжа об окружностях  2 211

•  Пазл Numbrix  1 682

•  Заборы и коммивояжеры  2 052

•  Игра HIP  1 278

•  Игра Go (Го)  1 224

•  Симулятор лифта  1 470

•  Программа укладки плитки  1 214

•  Генератор лабиринта  1 542

•  Проверка числового ввода  1 351

•  HEX View  1 489

•  Физический маятник  1 355

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Дни недели




unit datefunc;

interface
function checkdate(date: string): boolean;
function Date2julian(date: string): longint;
function Julian2date(julian: longint): string;
function DayOfTheWeek(date: string): string;
function idag: string;

implementation
uses

  sysutils;

function idag(): string;
{Получает текущую дату и возвращает ее в формате YYYYMMDD для использования
другими функциями данного молуля.}
var

  Year, Month, Day: Word;
begin
  DecodeDate(Now, Year, Month, Day);
  result := IntToStr(year) + IntToStr(Month) + IntToStr(day);
end;

function Date2julian(date: string): longint;
{Получает дату в формате YYYYMMDD.
Если у вас другой формат,
в первую очередь преобразуйте его.}
var

  month, day, year: integer;
  ta, tb, tc: longint;
begin

  month := strtoint(copy(date, 5, 2));
  day := strtoint(copy(date, 7, 2));
  year := strtoint(copy(date, 1, 4));
  if month > 2 then
    month := month - 3
  else
  begin
    month := month + 9;
    year := year - 1;
  end;
  ta := 146097 * (year div 100) div 4;
  tb := 1461 * (year mod 100) div 4;
  tc := (153 * month + 2) div 5 + day + 1721119;
  result := ta + tb + tc
end;

function mdy2date(month, day, year: integer): string;
var

  y, m, d: string;
begin

  y := '000' + inttostr(year);
  y := copy(y, length(y) - 3, 4);
  m := '0' + inttostr(month);
  m := copy(m, length(m) - 1, 2);
  d := '0' + inttostr(day);
  d := copy(d, length(d) - 1, 2);
  result := y + m + d;

end;

function Julian2date(julian: longint): string;
{Получает значение и возвращает дату в формате YYYYMMDD}
var

  x, y, d, m: longint;
  month, day, year: integer;
begin

  x := 4 * julian - 6884477;
  y := (x div 146097) * 100;
  d := (x mod 146097) div 4;
  x := 4 * d + 3;
  y := (x div 1461) + y;
  d := (x mod 1461) div 4 + 1;
  x := 5 * d - 3;
  m := x div 153 + 1;
  d := (x mod 153) div 5 + 1;
  if m < 11 then
    month := m + 2
  else
    month := m - 10;
  day := d;
  year := y + m div 11;
  result := mdy2date(month, day, year);
end;

function checkdate(date: string): boolean;
{Дата должна быть в формате YYYYMMDD.}
var

  julian: longint;
  test: string;
begin
  {Сначала преобразовываем строку в юлианский формат даты.
  Это позволит получить необходимое значение.}
  julian := Date2julian(date);
  {Затем преобразовываем полученную величину в дату.
  Это всегда будет правильной датой. Для проверки делаем обратное преобразование.
  Результат проверки передаем как выходной параметр функции.}
  test := Julian2date(julian);

  if date = test then

    result := true
  else

    result := false;
end;

function DayOfTheWeek(date: string): string;
{Получаем дату в формате YYYYMMDD
и возвращаем день недели.}
var

  julian: longint;
begin
  julian := (Date2julian(date)) mod 7;

  case julian of
    0: result := 'Понедельник';
    1: result := 'Вторник';
    2: result := 'Среда';
    3: result := 'Четверг';
    4: result := 'Пятница';
    5: result := 'Суббота';
    6: result := 'Воскресенье';
  end;
end;

end.

Тем не менее, начиная со второй версии, Delphi содержат в своем арсенале замечательную функцию DayOfWeek, возвращающую целочисленный результат в диапазоне от 1 до 7. Вот пример кода, присланный Андреем Ивановым:


uses SysUtils;
...

function TForm1.DayOfWeekRus(S: TDateTime): string;
begin
  case DayOfWeek(S) of
    1: Result := 'Воскресенье';
    2: Result := 'Понедельник';
    3: Result := 'Вторник';
    4: Result := 'Среда';
    5: Result := 'Четверг';
    6: Result := 'Пятница';
    7: Result := 'Суббота';
  end;
end;








Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте