将差异转换为2毫秒到毫秒?

jay*_*t55 37 c# time maskedtextbox

我有两个蒙版的TextBox控件,并想知道如何在每个控件中获取时间然后将差异转换为毫秒.比如说,在tb1我写"12:01",在tb2我写"12:02",然后点击一个按钮.单击按钮后,它将启动一个计时器,并在12:02显示一个消息框.除了时间转换部分,我知道如何做所有这些.

如何实现?

Mus*_*sis 109

DateTime dt1 = DateTime.Parse(maskedTextBox1.Text);
DateTime dt2 = DateTime.Parse(maskedTextBox2.Text);
TimeSpan span = dt2 - dt1;
int ms = (int)span.TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)


Hen*_*man 14

要回答标题问题:

DateTime d1 = ...;
DateTime d2 = ...;
TimeSpan diff = d2 - d1;

int millisceonds = (int) diff.TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)

你可以用它来设置一个Timer:

timer1.interval = millisceonds;
timer1.Enabled = true;
Run Code Online (Sandbox Code Playgroud)

处理勾号时不要忘记禁用计时器.

但如果您想 12:03 举办活动,只需替换DateTime.Now即可d1.

但目前尚不清楚textBox1和textBox2的确切功能是什么.

  • 你需要"TotalMilliseconds"而不是"Milliseconds"毫秒只会给你时间差的毫秒"余数",而不是整个时间跨度.2.475秒给出Milliseconds = 475,TotalMilliseconds = 2475 (2认同)

Vik*_*mov 6

您必须将文本框的值转换为DateTime(t1,t2),然后:

DateTime t1,t2;
t1 = DateTime.Parse(textbox1.Text);
t2 = DateTime.Parse(textbox2.Text);
int diff = ((TimeSpan)(t2 - t1)).TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)

或者使用DateTime.TryParse(textbox1,out t1); 错误处理取决于您.


Nas*_*she 5

上述许多解决方案可能适合不同的人。
我想建议一个比“ MusiGenesis”接受的大多数解决方案略微修改的代码。

DateTime firstTime = DateTime.Parse( TextBox1.Text );
DateTime secondTime = DateTime.Parse( TextBox2.Text );
double milDiff = secondTime.Subtract(firstTime).TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)

注意事项
- earlierTime.Subtract(laterTime)您将获得负值。
- int milDiff = (int)DateTime.Now.Subtract(StartTime).TotalMilliseconds;如果需要整数值而不是双精度
值,则使用-可以使用相同的代码获取两个Date值之间的差,并且您可能会得到.TotalDays.TotalHours插入.TotalMilliseconds