我已经完成了以下一段代码来添加小时数,从而计算总小时数。
string hour1="48.40";
string hour2 = "45.35";
TimeSpan ts = new TimeSpan(int.Parse(hour1.Split('.')[0]),int.Parse(hour1.Split('.')[1]),
0);
TimeSpan ts1 = new TimeSpan(int.Parse(hour2.Split('.')[0]),int.Parse(hour2.Split('.')[1]),
0);
Double total = (ts.TotalHours) + (ts1.TotalHours);
此处的问题是,当我添加hour1
和hour2
时total
来自 64.25 ,实际应该是 64.15
这只是一个测试用例,如果我把hour1
= 40.00 和hour2
= 40.10而不是总数中的值为 80.166666666666657 < / em>实际应该是 80.10
任何人都可以帮助我了解我做错了什么,添加HOUR并获得总小时数的正确方法是什么?
答案 0 :(得分:3)
实际上,你得到的结果是正确的 - 只需混合分钟和小时数。
80小时10分钟是80 1/6小时
64小时15分钟是64 1/4小时
答案 1 :(得分:2)
当你将时间戳放入字符串时会有点奇怪。但是如果你需要像这样做,这段代码应该可行
string hour1="48.40";
string hour2 = "45.35";
//find total number of minutes for each hour above
int minutes1 = int.Parse(hour1.Split('.')[0])*60+int.Parse(hour1.Split('.')[1]);
int minutes2 = int.Parse(hour2.Split('.')[0])*60+int.Parse(hour2.Split('.')[1]);
//calculate back to hours and minutes and reassemble as a string
string result = (minutes1+minutes2)/60+"."+(minutes1+minutes2)%60;
我希望你在上面的例子中期待 94.15 而不是 64.15 。
答案 2 :(得分:0)
您可以使用下一个代码来获得您想要的结果:
string hour1 = "48.40";
string hour2 = "45.35";
TimeSpan ts = new TimeSpan(int.Parse(hour1.Split('.')[0]), int.Parse(hour1.Split('.')[1]),
0);
TimeSpan ts1 = new TimeSpan(int.Parse(hour2.Split('.')[0]), int.Parse(hour2.Split('.')[1]),
0);
TimeSpan total = ts + ts1;
int hours = (int)total.TotalHours;
int minutes = total.Minutes;