В сообщении может содержаться дата в формате дд.мм.гггг. Заменить её на дату предыдущего дня - C#

Узнай цену своей работы

Формулировка задачи:

В сообщении может содержаться дата в формате дд.мм.гггг. В заданном формате дд - целое число из диапазона от 1 до31, мм - целое число из диапазона от 1 до 12, а гггг - целое число из диапазона от 1900 до 2010 (если какая-то часть формата нарушена, то данная подстрока в качестве даты не рассматривается). Замените каждую дату в сообщении на дату предыдущего дня. Есть рабочая программа:
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();
           
        }
    }
}
как сделать проверку на корректность даты, что бы например нельзя было бы ввести дату 32.01.2014например

Решение задачи: «В сообщении может содержаться дата в формате дд.мм.гггг. Заменить её на дату предыдущего дня»

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);
}
}

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


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

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

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