将时间转换为十进制
Converting Time to decimal
我所要做的就是找到员工的加班时间。出勤 sheet 以 CSV 文件的形式出现,我已经将数据保存到 table。数据 Field hours 为 12:10:00.0000000,The Working Hour per day 为 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 ) 转换为十进制。但它没有用。
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);
将 TimeSpan
解析为 decimal
没有太大意义,因为时间根本不是数值 .
但您可以使用它的 TotalHours
property,其中 returns double
。
var total = tot_hours.TotalHours;
您需要将 TimeSpan 转换为小数吗?它不能完成,因为它不是数字。
您可能需要 tot_hours.TotalHours
,这是一个包含小数部分的双精度数。
或tot_hours.TotalHours.ToString("#.00");
ot_hours 现在是 时间戳差异 = 秒! 将它们除以 60 得到分钟
示例:总计 = 2 分钟 = 120 秒等)
我所要做的就是找到员工的加班时间。出勤 sheet 以 CSV 文件的形式出现,我已经将数据保存到 table。数据 Field hours 为 12:10:00.0000000,The Working Hour per day 为 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 ) 转换为十进制。但它没有用。
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);
将 TimeSpan
解析为 decimal
没有太大意义,因为时间根本不是数值 .
但您可以使用它的 TotalHours
property,其中 returns double
。
var total = tot_hours.TotalHours;
您需要将 TimeSpan 转换为小数吗?它不能完成,因为它不是数字。
您可能需要 tot_hours.TotalHours
,这是一个包含小数部分的双精度数。
或tot_hours.TotalHours.ToString("#.00");
ot_hours 现在是 时间戳差异 = 秒! 将它们除以 60 得到分钟
示例:总计 = 2 分钟 = 120 秒等)