当用户点击“打卡”然后“打卡”时,我尝试创建一个简单的时间计算器。我已经使用 DateTime.Now 为每个变量创建了变量,以捕获用户打卡和打卡的实际时间。我还创建了一个用于打卡的按钮和一个单独的打卡按钮。出于某种原因,当我单击 Punch In,然后等待一两分钟进行测试时,当我单击 Punch Out 时,Punch Out 显示的时间与 Punch In 相同。我究竟做错了什么? 下面是代码:
public partial class Form1 : Form
{
DateTime startTime = DateTime.Now;
DateTime stopTime = DateTime.Now;
public Form1()
{
InitializeComponent();
}
private void btnPunchIn_Click(object sender, EventArgs e)
{
string punchIn = startTime.ToShortTimeString();
lblPunchInTime.Text = punchIn.ToString();
}
private void btnPunchOut_Click(object sender, EventArgs e)
{
string punchOut = stopTime.ToShortTimeString();
TimeSpan timeWorked = new TimeSpan();
lblPunchOutTime.Text = punchOut.ToString();
timeWorked = stopTime - startTime;
lblTimeWorked.Text = timeWorked.ToString();
}
}
最佳答案
唯一一次设置 stopTime
是在创建表单时(在 Form 类的顶部)。因此它将始终等于那个时间。
我认为您的意思是在他们单击按钮时设置 stopTime = DateTime.Now
。 startTime
的类似交易。
关于C# 使用 DateTime.Now 打入打出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48196737/