【发布时间】:2014-10-20 02:33:56
【问题描述】:
我正在用 C# 制作一个 NetcafeProgram,我想获取当前的 DateTime。我想要这样的输出(hr.mins)“0.25”。我有当前的 DateTime,但我想在 labelTime_1 中像这样 (hr.mins)"0.25" 显示它,但它不起作用。这是我使用的命令
starttime_1 = DateTime.Now.ToString("h:mm:ss tt");
我把它改成了
starttime_1 = DateTime.Now.ToString("h.mm");
然后我想得到这样的持续时间
TimeSpan duration = DateTime.Parse(endtime_1).Subtract(DateTime.Parse(starttime_1));
但它给了我错误。
这是我的 Formv 的截图:
我希望将时间发布在该已用时间标签上,但它不起作用。这是BtnStop1的编码
private void btnStop_1_Click(object sender, EventArgs e)
{
//string duration = Convert.ToInt32(((starttime_1) - (endtime_1)));
gbx_1.BackColor = Color.LimeGreen;
btnStop_1.Enabled = false;
//endtime_1 = DateTime.Now.ToString("h:mm:ss tt");
//TimeSpan duration = DateTime.Parse(endtime_1).Subtract(DateTime.Parse(starttime_1));
endtime_1 = DateTime.Now.ToString("h.mm tt");
TimeSpan duration = DateTime.Parse(endtime_1).Subtract(DateTime.Parse(starttime_1));
lblTime_1.Text = Convert.ToString(duration);
string var = "Cabin One is Free";
btnStart_1.Enabled = true;
HP_1.Enabled = true;
CR_1.Enabled = true;
reader = new SpeechSynthesizer();
reader.SpeakAsync(var);
}
BtnStart的编码
private void btnStart_1_Click(object sender, EventArgs e)
{
gbx_1.BackColor = Color.Red;
btnStart_1.Enabled = false;
//starttime_1 = DateTime.Now.ToString("h:mm:ss tt");
starttime_1 = DateTime.Now.ToString("h.mm tt");
lblTime_1.Text = "CountingTime";
string var = "Cabin One is Occupied";
reader = new SpeechSynthesizer();
reader.SpeakAsync(var);
HP_1.Enabled = false;
CR_1.Enabled = false;
}
这是我的变量
public string starttime_1;
public string starttime_2;
public string starttime_3;
public string starttime_4;
public string starttime_5;
public string starttime_6;
public string endtime_1;
public string endtime_2;
public string endtime_3;
public string endtime_4;
public string endtime_5;
public string endtime_6;
【问题讨论】:
-
为什么要格式化所有这些字符串,然后再次解析它们?不要那样做......对于时间,你最好只保留一个
Stopwatch,你可以询问经过的时间。 (我也强烈建议不要使用公共变量,不要在变量名中使用下划线,也不要使用仅按数字变化的多个名称......)
标签: c# winforms datetime error-handling