C# 计算asp.net c的总小时数#
我已经完成了下面的代码来添加小时数,从而计算总小时数C# 计算asp.net c的总小时数#,c#,timespan,C#,Timespan,我已经完成了下面的代码来添加小时数,从而计算总小时数 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.S
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.1666657,实际上应该是80.10
有谁能帮我理解我做错了什么,加上小时数和总小时数的正确方法是什么?事实上,你得到的结果是正确的——只是混合了分钟数和小时数的小数部分
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);
80小时10分钟等于80 1/6小时
64小时15分钟等于64 1/4小时事实上,你得到的结果是正确的——只是将分钟和小时的小数部分混合在一起
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);
80小时10分钟等于80 1/6小时
64小时15分钟是64 1/4小时当您将时间戳放入字符串时,会有点奇怪。但是,如果您需要这样做,这段代码应该可以工作
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。将时间戳放入字符串中会有点奇怪。但是,如果您需要这样做,这段代码应该可以工作
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。您可以使用下一个代码获得您想要的结果:
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;
您可以使用下一个代码获得您想要的结果:
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;