从时间跨度持续时间中删除分钟数

Remove Minutes from a Timespan duration

我知道之前有人问过这个问题,但我不知道如何获得针对我的特定示例的答案。这是一个用 C# 编写的 WPF 应用程序,我正在尝试从时间跨度中删除分钟数。

到目前为止,我的应用程序可以通过从结束时间中删除开始时间来计算持续时间,但我现在要做的是删除用户在表单中输入的分钟数.

这是目前的代码

 private void testcal_Click(object sender, EventArgs e)
    {

        string startTime = teststart.Text;
        string finishTime = testfinish.Text;

        // Trying to deduct this lunchTime var from the duration TimeSpan
        string lunchTime = testlunch.Text;

        TimeSpan duration = DateTime.Parse(finishTime).Subtract(DateTime.Parse(startTime));
        testlabel.Text = duration.ToString(@"hh\:mm");

    }

编辑 - 更新为包含 private void

您是在问如何从 TimeSpan 中减去分钟数?

如果是这样尝试

TimeSpan ts = new TimeSpan().Subtract(TimeSpan.FromMinutes(30));

有了用户输入就可以了。

string startTime = teststart.Text;
string finishTime = testfinish.Text;
string lunchTime = testlunch.Text;

TimeSpan duration = DateTime.Parse(finishTime).Subtract(DateTime.Parse(startTime)).
    Subtract(TimeSpan.FromMinutes(Int32.Parse(lunchtime)));
DateTime selectedDate = DateTime.Parse("10/09/2021");
DateTime now = DateTime.Now;

TimeSpan subtract = now - selectedDate;
subtract -= new TimeSpan(7, 0, 0, 0);