所有我必须做的就是找到员工的加班费。出勤表格以CSV文件格式存储,我已将数据保存到表格中。数据现场时间为12:10:00.0000000,每天工作时间为11:00:00.0000000。我使用Timespan计算了这两次之间的差异。
DateTime date, hours, working_hours ;
TimeSpan ot_hours = TimeSpan.Zero;
TimeSpan tot_hours = TimeSpan.Zero;
if (hours > working_hours)
{
ot_hours = (hours - working_hours);
}
此代码已设置为循环。完成循环后,我需要将总加班时间计入另一个变量。所以写了
tot_hours += tot_hours + ot_hours;
接下来我需要找到员工的加班费金额。 我试图将此tot_hours(TimeSpan)转换为Decimal。但它没有用。
tothrsvalue = Convert.ToDecimal(tot_hours);
totalvalue = rate * tothrsvalue;
此处有人..请看看并帮助我..提前致谢。
总计算部分如下:
decimal basics = Convert.ToDecimal(dtamt.Rows[0]["Amount"].ToString());
decimal rate = 0;
rate = ((basics / 30) / 8);
txtrate.Text = rate.ToString("0.000");
tothrsvalue = Convert.ToDecimal(total);
totalvalue = rate * tothrsvalue;
txtamount.Text = totalvalue.ToString("0.000");
amt = Convert.ToDecimal(txtamount.Text);
答案 0 :(得分:2)
将TimeSpan
解析为decimal
并没有多大意义,因为时间不是的数字值。
但您可以使用TotalHours
property返回double
。
var total = tot_hours.TotalHours;
答案 1 :(得分:1)
是否需要将TimeSpan转换为小数?它无法做到,因为它不是数字。
您可能需要tot_hours.TotalHours
,这是包含小数部分的双倍。
或tot_hours.TotalHours.ToString("#.00");
答案 2 :(得分:0)
ot_hours现在是时间戳差异=秒!将它们除以60分钟
示例:总计= 2分钟= 120秒等。)