C# 从文本文件中读取字符串并将其用作时间跨度
我有一个包含两行的文本文件。它们都包含此格式的小时数 14,0,0 15,0,0 我正在用C#读取这个文本文件,并将这两行转换成两个不同的字符串:C# 从文本文件中读取字符串并将其用作时间跨度,c#,.net,C#,.net,我有一个包含两行的文本文件。它们都包含此格式的小时数 14,0,0 15,0,0 我正在用C#读取这个文本文件,并将这两行转换成两个不同的字符串: if (File.Exists(txtFile)) { string[] lines = File.ReadAllLines(txtFile); startHour = lines[0]; endHour = li
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 start = new TimeSpan(startHour);
我得到一个错误:
无法从“System.TimeSpan”转换为“long”
我试图使用TimeSpan.Parse(startHour),但它不起作用
有什么建议吗?大致如下:
var startLine = lines[0].Split(',');
var endLine = lines[1].Split(',');
var startHour = int.Parse(startLine[0]);
var startMin = int.Parse(startLine[1]);
var startSec = int.Parse(startLine[2]);
var endHour = int.Parse(endLine[0]);
var endMin = int.Parse(endLine[1]);
var endSec = int.Parse(endLine[2]);
TimeSpan start = new TimeSpan(startHour, startMin , startSec);
TimeSpan end = new TimeSpan(endHour, endMin, endSec);
TimeSpan有4个重载方法,其中没有一个表示如果您将字符串传递给其构造函数,它将解析并生成Time Span对象
startHour = lines[0];
映射到TimeSpan的长构造函数
要解决这个问题,你必须使用这样的方法
var SplitTime = lines[0].Split(',');
TimeSpan sample = new TimeSpan(SplitTime[0], SplitTime[1], SplitTime[2]);
您可以处理此问题:
TimeSpan.ParseExact(lines[0], "h','m','s", CultureInfo.CurrentCulture)
您可以尝试使用
TimeSpan.ParseExact
方法
TimeSpan.ParseExact(lines[0], "h','m','s", CultureInfo.CurrentCulture)