获取当前时间然后递增它?

时间:2011-01-28 20:27:17

标签: c# winforms

当前项目:使用两个类在C#中创建时间程序Time和ExtendedTime Time只是正常时间,而ExtendedTime具有时区。

启动程序时,我需要单击一个按钮并获取当前时间,但可以选择更改时区。这反过来又改变了时间,并且还可以选择将时间增加这么多小时或几分钟。

目前,这是我的Time类中的displayTime方法:

public virtual string displayTime()
{
    DateTime time = DateTime.Now; // Use current time
    string format = "MMM ddd d HH:mm yyyy"; // Use this format
    MessageBox.Show(time.ToString(format)); // Write to console

    return time.ToString(format);
}//end of displayTime

除非我每次都称之为无关紧要,因为DateTime.Now

总会告诉我当前的时间。

我不完全确定如何解决这个问题。我确信我可以做一次性交易,但不确定语法。

4 个答案:

答案 0 :(得分:5)

您可以使用TimeSpan类来操作DateTime类。例如:

 DateTime now = DateTime.Now;
 DateTime twoHoursLater = now + new TimeSpan(2,0,0);
 DateTime twoDaysLater = now + new TimeSpan(2,0,0,0);

如果您使用的是用户提供的时间,例如文本框中的时间,则可以使用

 DateTime userSuppliedTime = DateTime.Parse(myTextbox.Text);

这将为您提供与用户输入的内容相对应的DateTime。但是,请注意,如果用户键入系统无法识别为有效的内容,则会引发异常。

答案 1 :(得分:3)

DateTime.AddDateTime.Subtract就足够了。

DateTime adjusted = DateTime.Now.Add(TimeSpan.FromMinutes(30));

答案 2 :(得分:1)

您获得当前时间,因为您没有操作该DateTime字段的代码。

要应用时区,请查看TimeZoneInfo类。

答案 3 :(得分:0)

你真的应该考虑使用DateTimeOffset结构,它适用于这种事情。