c# - C# 求两个时间的时间差

标签 c# sql database winforms sql-server-2008

我有一个表格,可以显示所有员工的 time_in 和 time_out 时间。 time_in 和 time_out 也是 sql 表。基本上表单返回数据库表值。我想做的是显示他们的工作时间。工作时间可以从 time_out 到 time_in 得到差异。我有两个显示时间和超时的文本框。第三个应该显示工作时间。

这是星期三的 time_out 值:

//Selected TimeOutWednesday
        SqlCommand TimeOutWednesdayMain = cs.CreateCommand();
        TimeOutWednesdayMain.CommandText = "SELECT CONVERT(VARCHAR(8), time_out, 108) AS time_out  FROM job_punch_card  WHERE emp_key='" + listBoxNames.SelectedValue.ToString() + "'and punch_day= DATEADD(week, DATEDIFF(day, 0, getdate())/7, 2)";
        Object TimeOutWednesdayMainTemp = TimeOutWednesdayMain.ExecuteScalar();
        txtTimeInWed.Text = TimeOutWednesdayMainTemp.ToString();

此代码为我的列表框中选定的用户提供星期三的超时时间。我也有相同的 time_in 代码。我无法做的是弄清楚如何找到工作时间?我怎样才能像上面那样在标签或文本框中显示他们的工作时间?

最佳答案

OS 中的 DateTime 类型是简单的 Integer 值,您应该进行算术运算并获得 Hours 或 TotalHours:
小时得到差异的整数部分(不要丢失解析你的文本框):

DateTime time_in;
DateTime.TryParse(time_in_TextBox.Text, out time_in);

DateTime time_out;
DateTime.TryParse(time_out_TextBox.Text, out time_out);

int hours = (time_in - time_out).Hours;


TotalHours 得到一个 double 值,与 DateTimes 完全不同:

DateTime time_in;
DateTime.TryParse(time_in_TextBox.Text, out time_in);

DateTime time_out;
DateTime.TryParse(time_out_TextBox.Text, out time_out);

double totalHours = (time_in - time_out).TotalHours;

关于c# - C# 求两个时间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27386926/

相关文章:

c# - Neo4jClient "CASE WHEN"连同返回

MYSQL FULL JOIN模拟查询,结果意外

mysql - 用户定义函数 MySQL Workbench

c# - WPF 数据网格行数据绑定(bind)?

c# - 在非默认结构构造函数中调用结构方法

MYSQL-显示受聘年限

php mysql 连接并创建表,没有错误,但没有数据

在 Netbeans 中创建表时出现 Java DB 错误

c# - 使用正则表达式解析多行日志条目

sql - Oracle Listagg 子查询