我有两个文本框。一种用于准时打卡,另一种用于打卡下班。时间将采用以下格式:
Hours:Minutes
假设我早上 7:00 打卡上班,下午 2:00 打卡下班。
使用我当前的代码,我得到了 2 小时的差异,但实际上应该是 7 小时。我将如何在 C# 中做到这一点。我本来打算通过让用户选择 AM 或 PM 来转换为 24 小时制,但我很困惑。
那么,基本上,我如何计算两个时间之间的小时差?
我尝试过这个,但是当我插入数字时,只有 2 小时而不是 7 小时。
DateTime startTime = Convert.ToDateTime(textBox1.Text);
DateTime endtime = Convert.ToDateTime(textBox2.Text);
TimeSpan duration = startTime - endtime;
string startTime = "7:00 AM";
string endTime = "2:00 PM";
TimeSpan duration = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime));
Console.WriteLine(duration);
Console.ReadKey();
将输出:07:00:00。
如果用户输入军事时间,它也有效:
string startTime = "7:00";
string endTime = "14:00";
TimeSpan duration = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime));
Console.WriteLine(duration);
Console.ReadKey();
输出:07:00:00。
要更改格式: duration.ToString(@"hh\:mm")
更多信息请访问: http://msdn.microsoft.com/en-us/library/ee372287.aspx http://msdn.microsoft.com/en-us/library/ee372287.aspx
附录:
多年来,我一直有些困扰的是,这是我给出过的最受欢迎的答案;最初的答案从未真正解释为什么OP的代码不起作用,尽管事实上它is完全有效。它获得如此多选票的唯一原因是,当人们搜索“C#”、“timespan”和“ Between”这些术语的组合时,该帖子就会出现在 Google 上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)