Замените каждую дату в сообщении на дату предыдущего дня - 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы