C# 计算出勤总小时数

C# 计算出勤总小时数,c#,asp.net,sql,vb.net,C#,Asp.net,Sql,Vb.net,我在asp.net中开发考勤系统,我有两个标签和文本框: 用于时间输入的文本框1。 请假输入的文本框2。 两者均由用户输入,例如:进入时间为:上午7:50,离开时间为:下午6:15。 现在我想计算输入条目的总小时数。 记住每天他/她有30分钟的休息时间。那怎么做呢 将TextBox1.Text转换为System.DateTime条目 将TextBox2.Text转换为System.DateTime 计算Timespan t=离开-进入-Timespan.FromMinutes30 得到t.Tot

我在asp.net中开发考勤系统,我有两个标签和文本框:

用于时间输入的文本框1。 请假输入的文本框2。 两者均由用户输入,例如:进入时间为:上午7:50,离开时间为:下午6:15。 现在我想计算输入条目的总小时数。 记住每天他/她有30分钟的休息时间。那怎么做呢

将TextBox1.Text转换为System.DateTime条目 将TextBox2.Text转换为System.DateTime 计算Timespan t=离开-进入-Timespan.FromMinutes30 得到t.TotalHours 要将时间字符串转换为DateTime,请使用DateTime.ParseExact


这将取决于您使用的数据库引擎。问题是总小时数。@DanBracuk我不明白,您是否建议我使用t.hours来代替?只是为了添加一些格式,您可以使用var totalTime=string.Format{0:D2}h:{1:D2}m,t.hours,t.Minutes;获取小时和分钟。@nemanjabric,我认为输入项的总小时数意味着一个数据库查询来获取以前输入的值。当然,问题并没有明确说明这一点。
    var ci = new CultureInfo("en-US");

    DateTime entry = DateTime.ParseExact("7:50 AM", "h:mm tt", ci);
    DateTime leave = DateTime.ParseExact("6:15 PM", "h:mm tt", ci);

    TimeSpan t = leave - entry - TimeSpan.FromMinutes(30);

    var totalTime = string.Format("{0:D2}h:{1:D2}m", t.Hours, t.Minutes);