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的确切功能是什么.
您必须将文本框的值转换为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); 错误处理取决于您.
上述许多解决方案可能适合不同的人。
我想建议一个比“ 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
| 归档时间: |
|
| 查看次数: |
86529 次 |
| 最近记录: |