В этом посте будет обсуждаться, как найти разницу во времени между двумя объектами DateTime в C#.
Если мы вычтем два объекта DateTime в C#, мы получим TimeSpan объект, представляющий временной интервал. В следующем примере кода выводится строковое представление TimeSpan
объект.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now - then; // или используйте `now.Subtract(then)` Console.WriteLine(ts); } } /* результат: 6.23:59:59.9992191 */ |
The TimeSpan
объект предоставляет несколько полезных свойств, таких как TotalDays
, TotalHours
, TotalMinutes
, TotalSeconds
, TotalMilliseconds
, чтобы получить общее количество дней, часов, минут, секунд, миллисекунд соответственно. Примеры каждого из этих свойств показаны ниже:
1. Использование TimeSpan.TotalDays()
метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); double diff = ts.TotalDays; Console.WriteLine(diff); } } /* результат: 6.999999990922453 */ |
2. Использование TimeSpan.TotalHours()
метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); Console.WriteLine(ts.TotalHours); } } /* результат: 167.99999975805557 */ |
3. Использование TimeSpan.TotalMinutes()
метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); Console.WriteLine(ts.TotalMinutes); } } /* результат: 10079.999985743334 */ |
4. Использование TimeSpan.TotalSeconds()
метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); Console.WriteLine(ts.TotalSeconds); } } /* результат: 604799.9992224 */ |
5. Использование TimeSpan.TotalMilliseconds()
метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); Console.WriteLine(ts.TotalMilliseconds); } } /* результат: 604799999.2238 */ |
The TimeSpan
объект также предлагает несколько других полезных свойств, таких как Days
, Hours
, Minutes
, Seconds
, Milliseconds
который возвращает компонент дня, компонент часа, компонент минут, компонент секунд, компонент миллисекунд соответственно. В следующем примере кода показано его использование.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; public class Example { public static void Main() { DateTime now = DateTime.Now; DateTime then = DateTime.Now.AddDays(-7); TimeSpan ts = now.Subtract(then); Console.WriteLine("{0} Days, {1} Hours, {2} Minutes, {3} Seconds, {4} Milliseconds", ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds); } } /* результат: 6 Days, 23 Hours, 59 Minutes, 59 Seconds, 999 Milliseconds */ |
Это все о вычислении разницы между двумя датами в C#.