• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1757
  • Last Modified:

timespan difference between 2 times

How do I get the differece in "mm:ss" of 2 timespans in C#
Time1 = "06:00 AM"
Time2 = "06:10 AM"
It must also automatically calc the correct span when it is
Time1 = "11:55 AM"
Time2 = "01:10 PM"

0
MSAIT
Asked:
MSAIT
2 Solutions
 
sjturner2Commented:
The attached snippet should help you, the output is:

Hours: 0, Seconds 10
Hours: 1, Seconds 15
   DateTime d1 = new DateTime(2000, 12, 1, 6, 0, 0);
            DateTime d2 = new DateTime(2000, 12, 1, 6, 10, 0, 0);
 
            TimeSpan s = d2.Subtract(d1);
 
            System.Diagnostics.Debug.WriteLine(
                string.Format("Hours: {0}, Seconds {1}",
                    s.Hours,
                    s.Minutes));
 
 
            DateTime d3 = new DateTime(2000, 12, 1, 11, 55, 0, 0);
            DateTime d4 = new DateTime(2000, 12, 1, 13, 10, 0, 0);
 
            TimeSpan s2 = d4.Subtract(d3);
 
            System.Diagnostics.Debug.WriteLine(
                string.Format("Hours: {0}, Seconds {1}",
                    s2.Hours,
                    s2.Minutes));

Open in new window

0
 
Göran AnderssonCommented:
You can add and subtract TimeSpan values like any numeric value. You can add a TimeSpan value to a DateTime value. You can use DateTime.ParseExact to parse a string to a DateTime value. You can subtract two DateTime values to get a TimeSpan value:
TimeSpan Time1 = TimeSpan.FromHours(6);
TimeSpan Time2 = TimeSpan.FromHours(6) + TimeSpan.FromMinutes(10);
 
TimeSpan diff = time2 - Time1; // result is 10 minutes
 
Console.WriteLine((DateTime.Today + diff).ToString("hh:mm tt")); // outputs "00:10 AM"
Console.WriteLine((DateTime.Today + diff).ToString("HH:mm")); // outputs "00:10"
 
DateTime Date1 = DateTime.ParseExact("11:55 AM", "hh:mm tt", CultureInfo.InvariantCulture);
DateTime Date2 = DateTime.ParseExact("01:10 PM", "hh:mm tt", CultureInfo.InvariantCulture);
 
TimeSpan diff2 = Date2 - Date1; // result is 75 minutes
 
Console.WriteLine((DateTime.Today + diff2).ToString("hh:mm tt")); // outputs "01:15 AM"
Console.WriteLine((DateTime.Today + diff2).ToString("HH:mm")); // outputs "01:15"

Open in new window

0
 
Computer101Commented:
Forced accept.

Computer101
EE Admin
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now