代码之家  ›  专栏  ›  技术社区  ›  Sinaesthetic

C:最简单的时间减法是什么?

  •  25
  • Sinaesthetic  · 技术社区  · 14 年前

    我正在试着组装一个工具来帮助我制定工作计划。解决以下问题的最简单方法是什么?

    上午8:00+5小时=下午1:00

    下午5:00-2小时=下午3:00

    下午5:30-:45=4:45

    等等。

    6 回复  |  直到 6 年前
        1
  •  51
  •   David Ferenczy Rogožan Hugo L.M    9 年前

    这些都可以用 DateTime.Add(TimeSpan) 因为它支持正负时间跨度。

    DateTime original = new DateTime(year, month, day, 8, 0, 0);
    DateTime updated = original.Add(new TimeSpan(5,0,0));
    
    DateTime original = new DateTime(year, month, day, 17, 0, 0);
    DateTime updated = original.Add(new TimeSpan(-2,0,0));
    
    DateTime original = new DateTime(year, month, day, 17, 30, 0);
    DateTime updated = original.Add(new TimeSpan(0,45,0));
    

    或者你也可以使用 DateTime.Subtract(TimeSpan) 方法类似。

        2
  •  22
  •   JDB    12 年前

    在这里查看所有的日期时间方法: http://msdn.microsoft.com/en-us/library/system.datetime.aspx

    Add 返回一个新的日期时间,将指定时间跨度的值添加到此实例的值。

    AddDays 返回将指定天数添加到此实例的值的新日期时间。

    AddHours 返回一个新的日期时间,将指定的小时数添加到此实例的值。

    AddMilliseconds 返回一个新的日期时间,将指定的毫秒数添加到此实例的值。

    AddMinutes 返回将指定的分钟数添加到此实例的值的新日期时间。

    AddMonths 返回一个新的日期时间,该日期时间将指定的月数添加到此实例的值。

    AddSeconds 返回将指定秒数添加到此实例的值的新日期时间。

    AddTicks 返回一个新的日期时间,该日期时间将指定的刻度数添加到此实例的值。

    AddYears 返回一个新的日期时间,将指定的年数添加到此实例的值。

        3
  •  7
  •   David Ferenczy Rogožan Hugo L.M    9 年前

    这也是可行的:

    System.DateTime dTime = DateTime.Now();
    
    // tSpan is 0 days, 1 hours, 30 minutes and 0 second.
    System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0); 
    
    System.DateTime result = dTime + tSpan;
    

    减去年份:

    DateTime DateEnd = DateTime.Now;
    DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0);
    
        4
  •  6
  •   Fadrian Sudaman    14 年前

    使用TimeSpan对象捕获初始时间元素并使用以下方法 AddHours AddMinutes . 如果要缩短3小时,您需要 AddHours(-3) . 要减去45分钟,您需要 AddMinutes(-45)

        5
  •  0
  •   Devin Burke Robert Isaev    12 年前

    试试这个

    namespace dateandtime
    {
    
        class DatesTime
        {
    
            public static DateTime Substract(DateTime now, int hours,int minutes,int seconds)
            {
                TimeSpan T1 = new TimeSpan(hours, minutes, seconds);
                return now.Subtract(T1);
            }
    
    
            static void Main(string[] args)
            {
                Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString());
    
            }
        }
    }
    
        6
  •  0
  •   Nick    6 年前

    嗨,如果只从datetime中减去整数值,则必须编写如下代码

    DateTime.Now.AddHours(-2)
    

    这里我从当前日期和时间中减去2小时