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输入日期 必须拒绝任何其他格式。 我的代码的修改日期部分有效,但只接受指定的日期格式不起作用。
答案 0 :(得分:2)
因此,您要查找的日期存储在input
中,您要替换它的日期是Date
?
但你有:
if (line.Contains(Date))
我想你想把它改成
if (line.Contains(input))
而且我不知道为什么DateTime.TryParseExact
来电。它似乎对你没什么好处。如果要验证用户输入的日期是好日期,请在用户输入时进行,并告诉用户它是否无效。在循环的每次迭代中都没有理由检查用户的输入。
此外,请致电newFile.Append(line + "\r\n")
。
newFile.AppendLine(line)