C#WPF时间直到xx

时间:2014-02-25 19:32:46

标签: c# wpf datetime countdown

我试图显示剩余的时间,直到用户指定的时间。我希望在指定的时间之前显示小时,分钟,秒和毫秒。

DateTime remaining = DateTime.Parse("2/24/2014 18:00:00 pm");
DateTime startDate = DateTime.Now;
TimeSpan t = remaining - startDate;
string countdown = string.Format("{0}:{1}:{2}:{3}", t.Days, t.Hours, t.Minutes, t.Seconds);
CountDown.Content = countdown;

Visual Studio说我需要在将日期设置为DateTime对象之前解析字符串以获取日期。

那么我需要创建一个新字符串,然后将其解析为字符串,然后将字符串设置为DateTime对象吗?

更新:

我收到的实际错误消息是:

  

System.FormatException未处理HResult = -2146233033   Message = String未被识别为有效的DateTime。源= mscorlib程序

2 个答案:

答案 0 :(得分:4)

如果我正确理解了这个问题,你只需要:

DateTime target = new DateTime(2014, 2, 24, 18, 0, 0);
TimeSpan remaining = target - DateTime.Now;

如果您已经知道所需的年/月/日等,则无需解析字符串只是为了获得DateTime值。

但是,您还谈到了用户指定的时间"。如果将该日期/时间指定为字符串,则是,您需要解析它。理想情况下,它将由某种日期/时间选择器控件指定,在这种情况下,您应该只能获得适当的DateTime值。除非你真的需要它们,否则避免使用字符串转换。

答案 1 :(得分:0)

这应该让你前进:

DateTime remaining = DateTime.Parse("2/24/2014 18:00:00 pm");
DateTime startDate = DateTime.Now;
TimeSpan t = remaining - startDate;
DateTime difference = new DateTime(t.Ticks);
CountDown.Content = difference;