【问题标题】:Calculating total numbersof hours for attendance计算出勤总小时数
【发布时间】:2013-09-15 20:55:21
【问题描述】:

我正在研究 asp.net 中的考勤系统,我有两个标签和文本框:

  1. Textbox1 用于时间输入。
  2. 请假条目的文本框2。

两者都由用户输入,例如:进入时间是:(7:50 AM),离开时间是:(6:15 PM)。 现在我想计算输入条目的总小时数。 记住他/她有 30 分钟的休息时间。那么该怎么做呢?

【问题讨论】:

  • 这取决于您使用的数据库引擎。

标签: c# asp.net sql vb.net


【解决方案1】:
  1. TextBox1.Text 转换为System.DateTime entry
  2. TextBox2.Text 转换为System.DateTime leave
  3. 计算Timespan t = leave - entry - Timespan.FromMinutes(30)
  4. 获取t.TotalHours()

要将时间字符串转换为DateTime,请使用DateTime.ParseExactWhy can’t DateTime.ParseExact() parse the AM/PM in “4/4/2010 4:20:00 PM” using “M'/'d'/'yyyy H':'mm':'ss' 'tt”

    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);

【讨论】:

  • 问题是总小时数。
  • @DanBracuk 我不明白,你是不是建议我改用t.Hours()
  • 只是为了添加一些格式,您可以使用var totalTime = string.Format("{0:D2}h:{1:D2}m", t.Hours, t.Minutes); 来获取小时和分钟。
  • @NemanjaBoric,我认为“输入条目的总小时数”意味着数据库查询也可以获取先前输入的值。当然,问题并没有明确说明。
猜你喜欢
  • 2021-11-23
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
相关资源
最近更新 更多