Вычитание даты и времени из значения DateTime в c # - PullRequest
0 голосов
/ 30 мая 2018

Как вычесть "год = 117 месяц = ​​1 день = 28 час = 7 мин = 43 сек = 10" из DateTime в c#?

Я уже пробовал, как показано ниже

  1. разделить строку с помощью регулярных выражений.
  2. добавить каждый элемент со знаком -ve к текущему значению DateTime.

Но я думаю, что это неэффективный способ.Кто-нибудь может мне помочь?

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Вы можете использовать ниже код согласно вашему требованию, чтобы получить желаемый результат.Замените значения даты, времени и года в «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;
0 голосов
/ 30 мая 2018

вы можете попробовать вычитание 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 изатем создаем окончательную дату из результата этого вычитания.

здесь, в последней строке, мы создаем дату (из прошлого).эта дата имеет указанное время назад.

0 голосов
/ 30 мая 2018

Попробуйте это ..

NewDateTime = new DateTime(OriginDateTime.Ticks - SubtractDateTime.Ticks);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...