Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2016, 14:24   #1
Zurs
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 28
По умолчанию Преобразование дат в Delphi 7?

Добрый день! Помогите решить задачу в Delphi! Необходимо создать форму с двумя Edit'ми. В первое необходимо вводить дату в любом формате (DD.MM.YY ; DD/MM/YY ; YYYY/MM/DD) необходимо считать эту дату и преобразовать в формат даты (dd.MM.YYYY), заранее спасибо!
Zurs вне форума Ответить с цитированием
Старый 30.09.2016, 15:03   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
if pos('/', sdate)=5 then // YYYY/MM/DD
  otvet:=format('%s.%s.%s', [copy(sdate, ? ,2), copy(sdate, ? , 2), copy(sdate, ? , 4)]; // ? что здесь посчитай пожалуйста сам
else if pos('/',sdate)=3 then  // DD/MM/YYYY
  otvet:=....
else if pos('.', date)=3 then // DD.MM.YYYY
  otvet:=....
else // формат определить не удалось
  otvet:='a какой это формат?'
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 30.09.2016, 15:08   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

или так коль делфи:
Код:
function MyStrToDate(const s: String; const FormatSettings: TFormatSettings; var pOut: TDateTime): Boolean;
begin
  try
    pOut:=StrToDate(s,FormatSettings);
    Result:=True;
  except
    Result:=False;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var d: TDateTime;
    s: String;
    xFormatSettings: TFormatSettings;
begin
  s:='2015-07-22';
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,xFormatSettings);
  xFormatSettings.DateSeparator:='-';
  xFormatSettings.ShortDateFormat:='yyyy/mm/dd';
  if MyStrToDate(s,xFormatSettings,d) then s:=FormatDateTime('dd.mm.yyyy',d) else s:='глюк';
  Edit1.Text:=s;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование дат в SQL EX111 Microsoft Office Access 4 14.07.2016 16:03
Delphi. Фильтрация по диапазону дат. Droz Помощь студентам 4 08.04.2016 16:54
Динамика курса валют - Проблема с выводом дат (Delphi) Max1097 Помощь студентам 2 05.03.2016 08:09
преобразование дат в числа (как отменить???) naty Microsoft Office Excel 1 03.04.2012 00:16
Вычисление диапазонов дат, Delphi kmvas Помощь студентам 0 10.12.2010 15:32