【问题标题】:Converting days/hours/minutes/seconds to hours/minutes/seconds将天/小时/分钟/秒转换为小时/分钟/秒
【发布时间】:2018-10-25 12:37:51
【问题描述】:

我有一个时间表应用程序,它显示在给定时间跨度内工作了多少小时。它工作得很好,但是当我想显示总工作时间时,它会在工作 24 小时后显示这种格式:1.01:06:16。我需要将其转换为这种格式:25:06:16。我进行了搜索,但只找到了所有其他转换,但没有找到我需要的转换表“时间跨度”是 TIME 格式。这是我的代码:

ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];
        MySqlConnection con = new MySqlConnection(conSettings.ToString());
        MySqlCommand cmd = new MySqlCommand(@"select timespan as 'Temps' from shopmanager.time_sheet where project_number = @project_number and users_employee_number = @users_employee_number and week_number = @week_number;", con);    

cmd.Parameters.AddWithValue("@project_number", username.default_project);
            cmd.Parameters.AddWithValue("@users_employee_number", username.user_id);

            cmd.Parameters.AddWithValue("@week_number", GetWeekNumber());
            DataTable dt = new DataTable();
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            da.Fill(dt);

            object sum;
            sum = dt.Compute("Sum(Temps)", "");
            textBox1.Text = sum.ToString();
            cmd.Parameters.Clear();

对此我很陌生,我似乎无法弄清楚。如果有人可以帮助我,那就太好了。

谢谢

【问题讨论】:

  • 请将textBox1.Text = sum.ToString(); cmd.Parameters.Clear();改为textBox1.Text = sum.ToString(); var bob = sum.GetType(); cmd.Parameters.Clear();bob的值是多少?
  • 您的TimeSpan.Parse 可能是不必要的。如果您可以进行我建议的更改并检查bob 的值,我们可以向您展示解决问题的更好更快的方法。此外,通过提供此信息,这有助于下一个遇到此问题的人。
  • 好的,谢谢。我会试一试。

标签: c# mysql winforms


【解决方案1】:

我知道怎么做。这是最终代码:

object sum;
            sum = dt.Compute("Sum(Temps)", "");
            TimeSpan time = TimeSpan.Parse(sum.ToString());
            string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");
            textBox1.Text = timeForDisplay;

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 2017-05-10
    • 2015-05-18
    • 2012-09-27
    • 1970-01-01
    相关资源
    最近更新 更多