В сообщении может содержаться дата в формате дд.мм.гггг. Заменить её на дату предыдущего дня - C#
Формулировка задачи:
В сообщении может содержаться дата в формате дд.мм.гггг. В заданном формате дд - целое число из диапазона от 1 до31, мм - целое число из диапазона от 1 до 12, а гггг - целое число из диапазона от 1900 до 2010 (если какая-то часть формата нарушена, то данная подстрока в качестве даты не рассматривается). Замените каждую дату в сообщении на дату предыдущего дня.
Есть рабочая программа:
как сделать проверку на корректность даты, что бы например нельзя было бы ввести дату 32.01.2014например
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class xeks
{
public void m()
{
Console.WriteLine("введиет дату в формате дата.месяц.год(пример 30.01.2016)");
string text = Convert.ToString(Console.ReadLine());
string pattern = "[0-3][0-9].[0-1][0-9].[1,2][9,0][0-9][0-9]";
MatchCollection matches;
Regex reg = new Regex(pattern);
matches = reg.Matches(text);
{
for (int i = 0; i < matches.Count; i++)
{
string updDate = DateTime.Parse(matches[i].Value).AddDays(-1).ToShortDateString();
text = text.Replace(matches[i].Value, updDate);
}
Console.WriteLine("дата предыдущенго дня {0}", text);
}
}
}
class Program
{
static void Main(string[] args)
{
xeks f1 = new xeks();
f1.m();
Console.ReadLine();
}
}
}Решение задачи: «В сообщении может содержаться дата в формате дд.мм.гггг. Заменить её на дату предыдущего дня»
textual
Листинг программы
for (int i = 0; i < matches.Count; i++)
{
if (DateTime.TryParse(matches[i].Value))
{
string updDate = DateTime.Parse(matches[i].Value).AddDays(-1).ToShortDateString();
text = text.Replace(matches[i].Value, updDate);
}
}