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

时间:2013-08-09 13:16:09

标签: c# datetime file-io formatting

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

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

1 个答案:

答案 0 :(得分:2)

因此,您要查找的日期存储在input中,您要替换它的日期是Date

但你有:

if (line.Contains(Date))

我想你想把它改成

if (line.Contains(input))

而且我不知道为什么DateTime.TryParseExact来电。它似乎对你没什么好处。如果要验证用户输入的日期是好日期,请在用户输入时进行,并告诉用户它是否无效。在循环的每次迭代中都没有理由检查用户的输入。

此外,请致电newFile.Append(line + "\r\n")

,而不是致电newFile.AppendLine(line)