【问题标题】:how to deduct time/date from current datetime如何从当前日期时间中扣除时间/日期
【发布时间】:2015-04-22 11:42:39
【问题描述】:

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

如果当前时间在晚上 11:30 到凌晨 12:00 之间,则扣除当天的 11 小时 30 分钟。 否则扣除前一天的 11 小时 30 分钟。

举个例子。

如果当前时间是 4 月 23 日晚上 11:45,则从当天扣除到晚上 11:30,结果为 15 分钟。

如果当前时间是 4 月 23 日上午 8:30,从前一天(22 日)减去到晚上 11:30,得出结果为 540 分钟。

我正在尝试使用 DateTime.Today.AddDays(-1) 进行扣除。

但无法在 c# 中编写确切的逻辑。 任何帮助。 提前致谢。

【问题讨论】:

  • 请包含一些代码示例或至少伪代码
  • 您可以使用时间跨度。 + 一些简单的逻辑。
  • @MajkeloDev 你能帮帮我吗

标签: c# datetime


【解决方案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;
    }

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多