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

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

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

          10/13/2013
          10/18/2013
          05/08/2013

我想把这个日期 10/18/2013 修改为 11/18/2014 用户只能输入指定格式的日期 MM/dd/yyyy 任何其他格式都必须拒绝。我的代码的修改日期部分有效,但仅接受指定的日期格式不起作用。

4

1 回答 1

2

所以你要查找的日期存储在 中input,而你要替换的日期是Date?

但是你有:

if (line.Contains(Date))

我想你想把它改成

if (line.Contains(input))

我不知道为什么会有那个DateTime.TryParseExact电话。这似乎对你没有任何好处。如果您想验证用户输入的日期是否正确,请在用户输入时执行此操作,并告诉用户它是否无效。没有理由在循环的每次迭代中检查用户的输入。

另外,与其打电话newFile.Append(line + "\r\n"),不如打电话newFile.AppendLine(line)

于 2013-08-09T13:43:18.813 回答