Читаем Советы по Delphi. Версия 1.0.6 полностью

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.

Формат даты

У меня есть неотложная задача: в настоящее время я разрабатываю проект, где я должен проверять достоверность введенных дат с применением маски __/__/____, например 12/12/1997.

Некоторое время назад я делал простой шифратор/дешифратор дат, проверяющий достоверность даты. Код приведен ниже.

function CheckDateFormat(SDate: string): string;

var

 IDateChar: string;

 x,y: integer;

begin

 IDateChar:='.,\/';

 for y:=1 to length(IDateChar) do begin

  x:= pos(IDateChar[y],SDate);

  while x>0 do begin

   Delete(SDate,x,1);

   Insert('-',SDate,x);

   x:= pos(IDateChar[y],SDate);

  end;

 end;

 CheckDateFormat:= SDate;

end;


function DateEncode(SDate:string):longint;

var

 year, month, day: longint;

 wy, wm, wd: longint;

 Dummy: TDateTime;

 Check: integer;

begin

 DateEncode:= -1;

 SDate:= CheckDateFormat(SDate);

 Val(Copy(SDate,1,pos('-',SDate)-1),day,check);

 Delete(Sdate,1,pos('-',SDate));

 Val(Copy(SDate,1,pos('-',SDate)-1),month,check);

 Delete(SDate,1,pos('-',SDate));

 Val(SDate,year,check);

 wy:= year;

 wm:= month;

 wd:= day;

 try

  Dummy:= EncodeDate(wy,wm,wd);

 except

  year:= 0;

  month:= 0;

  day:= 0;

 end;

 DateEncode:= (year*10000)+(month*100)+day;

end;

Функция 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 m<=0 then begin

   Inc(m,12);

   Dec(y);

  end;

  if ((y mod 4 = 0) and ((y mod 100<>0) or (y mod 400=0))) and (m=2) then add:=1 //дополнительный день в феврале

  else add:=0;

  if (d>0) and (d<=(mj[m]+add)) then break;

  if d>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;

Разное

Ханойская башня

"Ханойская башня" построена на очень простом алгоритме. Здесь я привожу этот алгоритм, который Вы сможете без труда воспроизвести.

type

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных
C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных