在我的应用程序中,我有4个TextBoxes和2个TextBox用于输入开始时间,2个TextBox用于输入结束时间。
用户将始终输入完成的时间,因此输入将始终为11:30,12:45,依此类推。
如何在开始和结束时间之间获得小时和分钟的差异?
答案 0 :(得分:15)
使用TimeSpan类和DateTime的Subtract方法。
DateTime t1 = Convert.ToDateTime(textBox1.Text);
DateTime t2 = Convert.ToDateTime(textBox2.Text);
TimeSpan ts = t1.Subtract(t2);
答案 1 :(得分:6)
您可以通过减法获得TimeSpan
差异。
TimeSpan time1 = TimeSpan.Parse(textBox1.Text);
TimeSpan time2 = TimeSpan.Parse(textBox2.Text);
TimeSpan difference = time1 - time2;
int hours = difference.Hours;
int minutes = difference.Minutes;
答案 2 :(得分:5)
创建两个DateTime
个对象来解析TextBox
控件中的值,然后简单地减去两个DateTime
,你会得到一个TimeSpan
对象,这就是你要找的对象
答案 3 :(得分:3)
使用TimeSpan,无需使用日期
var start = TimeSpan.Parse(start.Text);
var end = TimeSpan.Parse(end.Text);
TimeSpan result = end - start;
var diffInMinutes = result.TotalMinutes();
答案 4 :(得分:1)
TimeSpan difference = DateTime.Parse(txtbox1.Text) - Datetime.Parse(txtbox2.Text);
示例:
TimeSpan difference = DateTime.Parse("12:55")-DateTime.Parse("11:45");
double hourDiff= difference.TotalHours;
double minutes = difference.TotalMinutes;
Console.WriteLine(hourDiff);//1.16666666666667
Console.WriteLine(minutes);//70
答案 5 :(得分:1)
使用时间跨度:
DateTime dt1 = new DateTime(starttime.text);
DateTime dt2 = new DateTime(endtime.text);
TimeSpan result = dt2 - dt1;
然后你可以从结果中得到分钟,秒等。
答案 6 :(得分:0)
将小时数转换为分钟数,将其添加到现有分钟数,将其转换为总秒数,并对结束时间执行相同操作。相互减去它们,将它们转换回小时和分钟。记住一小时60分钟,一分钟60秒,这就是我如何处理它。因为总秒数总是相同的,所以很难尝试教一台计算机试图从60回到0或从12回到1.更容易使用一些完美的线性像秒。然后向上重新转换
答案 7 :(得分:0)
您可以减去两个DateTime
并获得TimeSpan
结构。这包含用于检索Days
,Hours
,Minutes
,Seconds
等的属性。
var first = new DateTime(2012, 05, 08, 10, 30, 00);
var second = new DateTime(2012, 05, 08, 11, 49, 13);
var diff = first - second;
var hours = diff.Hours;
var mins = diff.Minutes;