смещение даты и времени друг с другом — должно указывать общее количество дней

#c# #datetime

#c# #дата и время

Вопрос:

Должно быть, я создал так, что у меня есть дата-время, которое добавляется до дня, когда оно должно идти вперед. и тогда у меня есть время, так как оно должно быть установлено в отношении 04/10/16 по 10/09/16

Меня не волнует время, которое находится в datetime. Я не должен использовать его ни для чего. Что мне нужно из этого, так это точное количество дней с этого времени.

 Datetime dateString = "4/10/2016 8:30:52" //I pretend that it comes from the database, it was more in terms of see what come there.
DateTime dt = DateTime.Now.AddDays(5);
  

Что мне нужно из этого, так это то, что он сообщает мне, сколько дней между двумя датами времени, которые я ввел.

Комментарии:

1.сколько дней между двумя датами времени, там есть только один DateTime — другой — строка.

2. @Plutonix Я притворяюсь, что это происходит из базы данных, это было больше с точки зрения просмотра того, что там появилось.

3. все основные базы данных могут хранить и возвращать даты и время. учитывая 2 значения даты и времени, просто вычтите

Ответ №1:

Вы можете вычитать DateTime объекты, чтобы получить TimeSpan :

 Datetime dateString = DateTime.Parse("4/10/2016 8:30:52");
DateTime dt = DateTime.Now;
TimeSpan duration = dt-dateString;
  

Из TimeSpan объекта вы можете получить, сколько (полных) дней с :

 int totalCompleteDays = (int)duration.TotalDays;
  

Или, если вы хотите получить округленные результаты :

 int roundedTotalDays = (int)Math.Round(duration.TotalDays);
  

Комментарии:

1. Это сработает, но будьте осторожны… он округлит количество дней без какого-либо предупреждения. это означает, что чуть более 3 с половиной дней возвращается как 4 целых дня! 😉

2. Верно @timothy-Groote. Я предположил, что это то, чего хотел автор, но я могу фактически ошибаться. Я обновляю ответ 😉

3. Все в порядке, я думаю, это то, чего он тоже хотел.

4. @BaptisteChardon но его -2 пример создания у меня не будет -

5. @j-petersen Я не понял, что вы имели в виду под «его примером make-2». Вы имеете в виду отрицательную продолжительность времени?

Ответ №2:

Объекты DateTime поддерживают базовые операторы и будут возвращать TimeSpan объекты.

 DateTime DateTimeB = DateTime.Now.AddDays(5);
DateTime DateTimeA = DateTime.Now;
TimeSpan difference = DateTimeA - DateTimeB;
  


затем вы можете использовать TotalDays свойство TimeSpan .

 Console.out.WriteLine(difference.TotalDays);
  

Комментарии:

1. Я думаю, вы неправильно понимаете мою проблему. вот как я хочу, чтобы из этого вышло количество дней, а не промежуток времени.

2. Я думаю, вы неправильно поняли мой ответ, потому что я объясняю, как получить количество дней из этого временного интервала 😉

3. Ооо, хорошо 🙂 Теперь я понимаю это лучше, после того, как оно было правильным

4. Спасибо за помощь, я надеюсь, что вы дадите мне 1

5. @J.Petersen я сделал, хотя кто-то еще отклонил ваш вопрос.