语言是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]);
}
}
}
答案 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]);