C# - 如何获取日期和时间的用户输入
C# - How do I get a user input for date and time
我希望能够使用创建点的日期和时间从数据库中获取点。我想通过询问用户 date/time 他们想要什么然后使用那个 date/time 来找到要点来做到这一点。这是我目前的代码,它得到了重点,但只有我 运行 代码的确切时间的数据。例如,我希望能够从 6/4/2012 4:50:29 获取数据。
//connect to pi server
PIServers piServers = new PIServers();
foreach (var server in piServers)
{
Console.WriteLine("Server: {0}", server.Name);
}
PIServer piServer = piServers.DefaultPIServer;
Console.WriteLine("Default Server: {0}", piServer.Name);
piServer.Connect();
//get a PI Point
var point = PIPoint.FindPIPoint(piServer, "Pipoint");
var value = point.Snapshot();
Console.WriteLine("Point {0} Value {1} {2}", point.Name,
value.Value.ToString(),value.Timestamp.ToString());
非常感谢您的帮助。
你需要做的是先询问用户:
Console.WriteLine("Enter date");
var userInput = Console.ReadLine();
现在userInput
是一个字符串,所以你需要把它转换成一个DateTime
对象,我不会直接转换它,因为它很容易得到一个InvalidCastException
,所以我们应该使用内置的 TryParse(String, out DateTime)
来验证它是否是正确的 DateTime
.
DateTime result;
DateTime.TryParse(userInput, out result);
如果 userInput
是正确的 DateTime
那么 result
将是一个有效的 DateTime
对象。如果不正确,result
将是 DateTime.MinValue
,所以我会检查:
if(!result.Equals(DateTime.MinValue))
{
// Continue to look it up in the DB
}
您必须从用户那里获得输入并将该值存储在变量中。
我假设 var point = PIPoint.FindPIPoint(piServer, "Pipoint");
是查询数据库匹配项的代码行。
在这种情况下,您可能希望将日期时间作为字符串传递。 string input = Console.Readline();
然后只需将 userInput 传递给 FindPIPoint 方法。
但是如果 .FindPiPoint 方法正在寻找日期时间,您需要先将其转换为日期时间对象。
由于这是假设任何可能的日期时间都是可能的匹配项(我怀疑是这种情况),因此您应该为不正确的匹配项添加一些错误处理。
我希望能够使用创建点的日期和时间从数据库中获取点。我想通过询问用户 date/time 他们想要什么然后使用那个 date/time 来找到要点来做到这一点。这是我目前的代码,它得到了重点,但只有我 运行 代码的确切时间的数据。例如,我希望能够从 6/4/2012 4:50:29 获取数据。
//connect to pi server
PIServers piServers = new PIServers();
foreach (var server in piServers)
{
Console.WriteLine("Server: {0}", server.Name);
}
PIServer piServer = piServers.DefaultPIServer;
Console.WriteLine("Default Server: {0}", piServer.Name);
piServer.Connect();
//get a PI Point
var point = PIPoint.FindPIPoint(piServer, "Pipoint");
var value = point.Snapshot();
Console.WriteLine("Point {0} Value {1} {2}", point.Name,
value.Value.ToString(),value.Timestamp.ToString());
非常感谢您的帮助。
你需要做的是先询问用户:
Console.WriteLine("Enter date");
var userInput = Console.ReadLine();
现在userInput
是一个字符串,所以你需要把它转换成一个DateTime
对象,我不会直接转换它,因为它很容易得到一个InvalidCastException
,所以我们应该使用内置的 TryParse(String, out DateTime)
来验证它是否是正确的 DateTime
.
DateTime result;
DateTime.TryParse(userInput, out result);
如果 userInput
是正确的 DateTime
那么 result
将是一个有效的 DateTime
对象。如果不正确,result
将是 DateTime.MinValue
,所以我会检查:
if(!result.Equals(DateTime.MinValue))
{
// Continue to look it up in the DB
}
您必须从用户那里获得输入并将该值存储在变量中。
我假设 var point = PIPoint.FindPIPoint(piServer, "Pipoint");
是查询数据库匹配项的代码行。
在这种情况下,您可能希望将日期时间作为字符串传递。 string input = Console.Readline();
然后只需将 userInput 传递给 FindPIPoint 方法。
但是如果 .FindPiPoint 方法正在寻找日期时间,您需要先将其转换为日期时间对象。
由于这是假设任何可能的日期时间都是可能的匹配项(我怀疑是这种情况),因此您应该为不正确的匹配项添加一些错误处理。