===== PascalABC.NET =====
procedure DateNum(s1: string; var s2: string);
begin
s1 := s1.MatchValue('\d{1,2}\s\w{3,}\s\d{1,4}\sгода');
if s1.Length > 0 then
var aw := s1.ToWords;
s2 := aw[0] + '.';
var m := Arr('января', 'февраля', 'марта', 'апреля',
'мая', 'июня', 'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря');
var i := m.FindIndex(w -> w = aw[1]);
if i >= 0 then
s2 += (i + 1).ToString + '.' + aw[2]
else s2 := ''
end
else
s2 := ''
end;
var s1 := 'Сегодня 12 декабря 2019 года, четверг';
var s2: string;
DateNum(s1, s2);
if s2.Length > 0 then
Println(s2)
Println('Дата записана некорректно')
end.
===== PascalABC.NET =====
procedure DateNum(s1: string; var s2: string);
begin
s1 := s1.MatchValue('\d{1,2}\s\w{3,}\s\d{1,4}\sгода');
if s1.Length > 0 then
begin
var aw := s1.ToWords;
s2 := aw[0] + '.';
var m := Arr('января', 'февраля', 'марта', 'апреля',
'мая', 'июня', 'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря');
var i := m.FindIndex(w -> w = aw[1]);
if i >= 0 then
s2 += (i + 1).ToString + '.' + aw[2]
else s2 := ''
end
else
s2 := ''
end;
begin
var s1 := 'Сегодня 12 декабря 2019 года, четверг';
var s2: string;
DateNum(s1, s2);
if s2.Length > 0 then
Println(s2)
else
Println('Дата записана некорректно')
end.