将从文件中获取的字符串转换为datetime

时间:2017-03-09 20:59:37

标签: c#

语言是C#

您好,

我正在尝试制作员工时间计算器。我创建了3个按钮,IN,OUT和READ。 In和OUT,按下时,将系统时间保存到文件中。

  

保存在文件中的格式为:OUT 3/9/2017 3:20:55 PM

我也可以读取值,但是当尝试在datetime中转换它时会抛出异常。 任何人都可以指导我如何计算从文件中获取的两个值的差异。

问题在按钮3中

         private void button3_Click(object sender, EventArgs e)
    {

        int a = 0;
        string path = @"C:\Users\Public\WriteLines.txt";
        using (StreamReader sr = new StreamReader(path))
        {
             string line;
             string[] lines= new String[500]; 
            // Read and display lines from the file until the end of 
            // the file is reached.
            while ((line = sr.ReadLine()) != null)
            {
                lines[a] = line;
                a++;
                Console.WriteLine(line);
                Console.WriteLine(a);
     //  DateTime date3 = DateTime.Parse(lines[1]);
      //         DateTime date4 = DateTime.Parse(lines[2]);
       //        DateTime date4 = DateTime.ParseExact(lines[2], "d/M/yyyy h:mm:ss tt", null);

                 TimeSpan difference = DateTime.Parse(lines[1]) - DateTime.Parse(lines[2]);
            }
        }
    }

3 个答案:

答案 0 :(得分:0)

我同意之前关于太多信息的评论。 话虽如此,看起来你的字符串包含“IN”或“OUT”。 DateTime.Parse()无法处理,所以解析那些,所以你只有字符串的日期时间部分提供给DateTime.Parse()。

答案 1 :(得分:0)

抱歉我的不好,我应该首先只编写所需的代码。

即使我删除' IN'和' OUT',它仍然给我错误:

  

未处理的类型' System.ArgumentNullException'发生了   在mscorlib.dll中

     

附加信息:字符串引用未设置为a的实例   字符串。

目前文件中的值为

3/8/2017 7:06:43 PM

3/8/2017 7:06:44 PM

3/8/2017 7:06:44 PM

3/8/2017 7:06:44 PM

3/8/2017 7:06:44 PM

3/8/2017 7:06:44 PM

答案 2 :(得分:0)

使用

解决了该问题
  

TimeSpan差异= Convert.ToDateTime(lines [a]) -   Convert.ToDateTime(行[A-1]);