Замените каждую дату в сообщении на дату предыдущего дня - C#
Формулировка задачи:
В сообщении может содержаться дата в формате дд.мм.гггг. В заданном формате дд – целое число из диапазона от 1 до 31, мм – целое число из диапазона от 1 до 12, а гггг – целое число из диапазона от 1900 до 2010 (если какая-то часть формата нарушена, то данная подстрока в качестве даты не рассматривается). Замените каждую дату в сообщении на дату предыдущего дня.
В программе сделана замена даты на следующий день, как переделать на предыдущую?
using System; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //сообщение string text = "12.12.1910 Тестим выражение. 28 декабря 2012. Еще раз тест даты 31.12.2010"; //шаблон регулярного выражения string pattern = "[0-3][0-9].[0-1][0-3].[1,2][9,0][0-9][0-9]"; Console.WriteLine("String to regex: {0}", text); 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("\r\n{0}", text); Console.ReadLine(); //Выводит: //13.12.1910 Тестим выражение. 28 декабря 2012. Еще раз тест даты 01.01.2011 } } }
Решение задачи: «Замените каждую дату в сообщении на дату предыдущего дня»
textual
Листинг программы
string updDate = DateTime.Parse(matches[i].Value).AddDays(-1).ToShortDateString();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д