将timespan转换为datetime要在C#中添加datetimepicker

时间:2017-08-29 13:23:38

标签: c# winforms datetime datetimepicker

我想在datatimerpicker中显示时间跨度数据类型,我必须先转换但我不知道该怎么做

xsl:perform-sort

3 个答案:

答案 0 :(得分:3)

  

这绝不是你问题的答案 - 把它当作对你要问的内容的洞察,然后我们可以为它创造一个真实的问题/答案。

日期/时间选择器必须具有日期组件。但是,我们可以“忽略”日期部分..

由于问题含糊不清,我只能推测......但是这里......我的“可能是”最终将如何表达......

TimeSpan a = new TimeSpan(12, 00, 00);       // 12 hours (could be midday)
TimeSpan b = new TimeSpan(13, 00, 00);       // 13 hours (could be 1 pm)

TimeSpan r = b - a;                          // 1 hour (could be 1 am)

TimeSpan rr = new TimeSpan(r.Ticks / 2);     // 30 minutes (could be 12:30 am)

dateTimePicker.Value = DateTime.Now.Add(rr); // current date time plus 30 minutes

// -- OR --

dateTimePicker.Value = DateTime.Now.Date.Add(rr); // current date plus 30 minutes
                                                  // eg: 2017-08-29 00:30:00

我认为这是你正在寻找的最后一个,但这加入了混合......

dateTimePicker.Format = DateTimePickerFormat.Time;

有关详细信息,请参阅此处:https://msdn.microsoft.com/en-us/library/ms229631(v=vs.100).aspx

答案 1 :(得分:2)

尝试:

private void button1_Click(object sender, EventArgs e){
TimeSpan a = new TimeSpan(12, 00, 00);
TimeSpan b = new TimeSpan(13, 00, 00);

TimeSpan r = b - a;
TimeSpan rr = new TimeSpan(r.Ticks / 2);

MessageBox.Show("Test\n " + rr);   ///this is type TimeSpan 

dateTimePicker.Value =  DateTime.Now.Date.AddMilliseconds(rr.TotalMilliseconds);
}

答案 2 :(得分:1)

如果您只想在DateTimePicker控件中显示时间,只需将Format属性值更改为Time,但是,如果您正在寻找控件以将其用作计数器,我建议您使用TextBoxLabel或其他内容:)