来自c#中DateTime值的日期时间减法

时间:2018-05-30 08:33:33

标签: c# datetime

如何减去"年= 117个月= 1天= 28个小时= 7个月= 43秒= 10"来自DateTime中的c#

我已经尝试过如下

  1. 使用正则表达式拆分字符串。
  2. 将每个带有-ve符号的项添加到当前的DateTime值。
  3. 但我认为这不是一种有效的方法。 任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

您可以根据您的要求使用以下代码来获得所需的结果。在" new System.DateTime(1996,6,3,22,15,0)中更换日期,时间,年份值;"

System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);

// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);

// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);

// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;

// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;

答案 1 :(得分:0)

你可以尝试DateTime的减法。

首先,您必须从您的信息中生成有效的DateTime对象,然后从当前日期中减去该日期。

见下面的代码,

int year = 117, month = 01, day = 28;
int hour = 07, minute = 43, second = 10;

DateTime timeToSubtract = 
   new DateTime(year > 0? year : 1, month > 0 ? month : 1, day > 0 ? day : 1, hour, minute, second);
DateTime subtractedDate =
   new DateTime((DateTime.Now - timeToSubtract).Ticks);

正如您所看到的,我们正在使用new DateTime(year, month, day, hour, minute, second)创建一个日期时间对象,其中包含我们拥有的信息(日期和时间应从当前日期时间减去),然后从DateTime.Now中减去此对象,然后从这个减法的结果中创建最终日期。

在最后一行,我们正在创建一个日期(过去)。此日期是指定的时间之前。

答案 2 :(得分:-1)

试试这个..

NewDateTime = new DateTime(OriginDateTime.Ticks - SubtractDateTime.Ticks);