我有一个包含两行的文本文件 . 它们都包含这种格式的小时数 .
14,0,0 15,0,0
我正在用C#读取这个文本文件并将两行分成两个不同的字符串:
if (File.Exists(txtFile))
{
string[] lines = File.ReadAllLines(txtFile);
startHour = lines[0];
endHour = lines[1];
}
所以startHour = 14,0,0和endHour = 15,0,0
TimeSpan start = new TimeSpan(14, 0, 0);
TimeSpan end = new TimeSpan(15, 0, 0);
TimeSpan now = DateTime.Now.TimeOfDay;
if (now <= end && now >= start)
{
Console.WriteLine("between the hour");
}
else
{
Console.WriteLine("dont match");
}
我想要完成的是用文本文件中的值替换从开始和结束TimeSpan的硬编码小时
TimeSpan start = new TimeSpan(14, 0, 0);
TimeSpan end = new TimeSpan(15, 0, 0);
当我尝试这个:
TimeSpan start = new TimeSpan(startHour);
我收到一个错误:
无法从'System.TimeSpan'转换为'long'
我试图使用TimeSpan.Parse(startHour),但它不起作用 .
有什么建议?
4 回答
有点像:
TimeSpan有4个重载方法,其中没有一个表示如果你将一个String传递给它的构造函数,它将解析并产生你的时间 Span 对象 . 所以错误是因为
被映射到TimeSpan的long构造函数 .
要解决这个问题,你必须使用这样的东西
TimeSpan.ParseExact可以处理这个:
您可以尝试使用
TimeSpan.ParseExact
方法 .