C# 如何从当前日期时间中扣除时间/日期

C# 如何从当前日期时间中扣除时间/日期,c#,datetime,C#,Datetime,我必须从当前日期时间中扣除一些日期时间。 有些是根据少数规则定义的 如果当前时间在晚上11:30至上午12:00之间,则扣除当天晚上11小时30分。 否则扣除前一天晚上11小时30分 让我们举个例子 如果当前时间为4月23日晚上11:45,则从当天起扣除至晚上11:30,得出15分钟的结果 如果当前时间为4月23日上午08:30,则从前一天(22日)扣除至晚上11:30,结果为540分钟 我试图使用DateTime.Today.AddDays(-1)扣除 但无法用c#编写精确的逻辑代码。 任何帮

我必须从当前日期时间中扣除一些日期时间。 有些是根据少数规则定义的

如果当前时间在晚上11:30至上午12:00之间,则扣除当天晚上11小时30分。 否则扣除前一天晚上11小时30分

让我们举个例子

如果当前时间为4月23日晚上11:45,则从当天起扣除至晚上11:30,得出15分钟的结果

如果当前时间为4月23日上午08:30,则从前一天(22日)扣除至晚上11:30,结果为540分钟

我试图使用DateTime.Today.AddDays(-1)扣除

但无法用c#编写精确的逻辑代码。 任何帮助。
提前感谢。

您应该使用变量而不是DateTime.Today。
比如:
var newDate=SOMEDate.AddDays(-1)

您需要对此进行测试,可能需要稍加修改,但请尝试使用此

    TimeSpan eTs = new TimeSpan(23, 30, 00);
    double inMins;

    if (DateTime.Now.TimeOfDay < eTs)
    {
        DateTime dTarget = DateTime.Now.AddDays(-1).Date + eTs;
        TimeSpan ts = DateTime.Now.Subtract(dTarget);
        inMins = ts.TotalMinutes;
    }
    else
    {
        DateTime dTarget = DateTime.Now.Date + eTs;
        TimeSpan ts = DateTime.Now.Subtract(dTarget);
        inMins = ts.TotalMinutes;
    }
TimeSpan-eTs=新的时间跨度(23,30,00);
双英寸;
if(DateTime.Now.TimeOfDay
请提供一些您可以使用TimeSpan的代码示例或至少PSUEDOCODE。+一点简单的逻辑。@MajkeloDev你能帮我一下吗