C# 无法修改文件中存储的日期

C# 无法修改文件中存储的日期,c#,datetime,file-io,formatting,C#,Datetime,File Io,Formatting,我正在尝试编写一个代码,允许用户仅以指定的格式修改存储在文本文件中的日期。这个代码似乎不起作用。出了什么问题,我怎样才能让它工作 以下信息存储在我的文本文件中 class Planner { static void Main() { Console.WriteLine("The Date To Be Edited Is"); string input = Console.ReadLine(); Console.WriteLine("

我正在尝试编写一个代码,允许用户仅以指定的格式修改存储在文本文件中的日期。这个代码似乎不起作用。出了什么问题,我怎样才能让它工作

以下信息存储在我的文本文件中

class Planner
{
    static void Main()
    {
        Console.WriteLine("The Date To Be Edited Is");
        string input = Console.ReadLine();
        Console.WriteLine("The Edited Date Is:");
        string Date = Console.ReadLine();
        StringBuilder newFile = new StringBuilder();
        string temp = "";
        string[] file = File.ReadAllLines("Dates.txt");
        foreach (string line in file)
        {
                if (line.Contains(Date))
                {
                        DateTime Test;
                        if(DateTime.TryParseExact(Date, "MM/dd/yyyy", null, DateTimeStyles.None, out Test) == true)
                        temp = line.Replace(input, Date);
                        newFile.Append(temp + "\r\n");
                        continue;
                }
                newFile.Append(line + "\r\n");
            }
            File.WriteAllText("Dates.txt", newFile.ToString());
    } 
}
我想将此日期从2013年10月18日修改为2014年11月18日 用户只能以指定格式MM/dd/yyyy输入日期 必须拒绝任何其他格式。
我的代码中的修改日期部分起作用,但仅接受指定的日期格式不起作用

那么您要查找的日期存储在
input
中,而您要替换它的日期是
date

但你有:

          10/13/2013
          10/18/2013
          05/08/2013
我想你想把它改成

if (line.Contains(Date))
我不知道为什么会有这个
DateTime.TryParseExact
调用。这似乎对你没有任何好处。如果要验证用户输入的日期是否正确,请在用户输入日期时进行验证,并告诉用户该日期是否无效。没有理由在循环的每次迭代中检查用户的输入


另外,不要调用
newFile.Append(line+“\r\n”)
,而是调用
newFile.AppendLine(line)

您有什么具体的问题吗?您收到的输出与您期望的输出相比是什么?每次,您都会来到我的朋友和我的援救@JimMischel@MatildaBeckham字体很乐意帮忙。如果这解决了您的问题,请将其标记为已接受的答案。(单击复选标记。)
if (line.Contains(input))