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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2017, 15:05   #1
Halikarnas
Пользователь
 
Регистрация: 19.03.2017
Сообщений: 14
По умолчанию В заданной строке текста найдите и выведите на экран все даты

В заданной строке текста найдите и выведите на экран все даты. Для даты можно указать свой или взять общепринятый формат, например, «число1.число2.число3», где (1 ≤ число1 ≤ 31), (1 ≤ число2 ≤ 12), (1 ≤ число3 ≤ 2100). Определите, есть даты корректными, например, 29.2.1999 или 31.6.2000 – некорректные даты.
Halikarnas вне форума Ответить с цитированием
Старый 12.06.2017, 15:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.06.2017, 08:02   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const
  MonthDays: array [1..12] of Word =
    (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;

function TryEncodeDate(Year, Month, Day: Word): Boolean;
var
  DayTable: Word;
begin
  Result := False;
  DayTable := MonthDays[Month];
  if (Month = 2) and IsLeapYear(Year) then
    DayTable:=29;
  if (Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
    (Day >= 1) and (Day <= DayTable) then
    Result := True;
end;

var i,k,d,m,y:integer;
    s,s1,s2:string;
begin
   Write('s = '); Readln(s);
   i:=0;
   Repeat
      Inc(i);
      If (s[i]>='0') and (s[i]<='9') then
      begin
         s1:='';
         Repeat
            s1:=s1+s[i];
            Inc(i);
            If i>Length(s) then
               Break;
            If not ((s[i]>='0') and (s[i]<='9') or (s[i]='.')) then
               Break;
         Until false;
         { число }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         d:=StrToInt(s2);
         { месяц }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         m:=StrToInt(s2);
         { год }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         y:=StrToInt(s2);
         Write(d,'.',m,'.',y,' - ');
         If TryEncodeDate(y,m,d) then
            Writeln('yes') else
            Writeln('no!!!')
      end;
   Until i>=Length(s);
   Writeln;
   Writeln;
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 15.06.2017 в 08:06.
newerow1989 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В заданной строке текста выведите самое короткое (длинное) слово. Учтите, что таких слов может быть несколько. Удалите (удвойте) эти слова.(PascalABCNET) FlayGlam Помощь студентам 0 03.12.2016 09:58
Постройте и выведите на экран бинарное дерево. Найдите произведение элементов дерева, находящихся на уровне u merick Visual C++ 0 09.04.2016 08:39
решите в каждой строке матрицы максимальной и минимальный элементы и поменяйте их местами.выведите матрицу на экран покемон21 Паскаль, Turbo Pascal, PascalABC.NET 1 24.12.2013 10:30
С++ Выведите на экран все символы, встречающиеся в строке, без пробела. alex1994max Помощь студентам 1 09.07.2013 13:25
В заданной строке удалить все лишние пробелы(Delphi) darko666 Помощь студентам 2 10.12.2011 22:36