Dates, Times, and Formatting
Time Spans
Measure a deterministic duration in hours and minutes.
time
A `TimeSpan` stores an amount of time, not a calendar date.
Time Spans
TimeSpans.cs
Replay: real traced execution (multi-file project)
using System;
using System.Globalization;
class Program
{
static void Main()
{
int extraMinutes = 15;
TimeSpan baseLength = TimeSpan.FromMinutes(45);
TimeSpan total = baseLength + TimeSpan.FromMinutes(extraMinutes);
string minutes = total.TotalMinutes.ToString(CultureInfo.InvariantCulture);
string hours = total.TotalHours.ToString("0.00", CultureInfo.InvariantCulture);
Console.WriteLine($"minutes={minutes}");
Console.WriteLine($"hours={hours}");
}
}
using System;
using System.Globalization;
class Program
{
static void Main()
{
int extraMinutes = 0;
TimeSpan baseLength = TimeSpan.FromMinutes(45);
TimeSpan total = baseLength + TimeSpan.FromMinutes(extraMinutes);
string minutes = total.TotalMinutes.ToString(CultureInfo.InvariantCulture);
string hours = total.TotalHours.ToString("0.00", CultureInfo.InvariantCulture);
Console.WriteLine($"minutes={minutes}");
Console.WriteLine($"hours={hours}");
}
}
using System;
using System.Globalization;
class Program
{
static void Main()
{
int extraMinutes = 30;
TimeSpan baseLength = TimeSpan.FromMinutes(45);
TimeSpan total = baseLength + TimeSpan.FromMinutes(extraMinutes);
string minutes = total.TotalMinutes.ToString(CultureInfo.InvariantCulture);
string hours = total.TotalHours.ToString("0.00", CultureInfo.InvariantCulture);
Console.WriteLine($"minutes={minutes}");
Console.WriteLine($"hours={hours}");
}
}
extraMinutes ← 15, baseLength ← 00:45:00, total ← 01:00:00, minutes ← 60
5{6 static void Main()7 {8 int extraMinutes→ 15 = 15; //@extraMinutes=0, 309 TimeSpan baseLength→ 00:45:00 = TimeSpan.FromMinutes(45);10 TimeSpan total→ 01:00:00 = baseLength00:45:00 + TimeSpan.FromMinutes(extraMinutes15);1112 string minutes→ 60 = total.TotalMinutes60.ToString(CultureInfo.InvariantCulture);13 string hours→ 1.00 = total.TotalHours1.ToString("0.00", CultureInfo.InvariantCulture);1415 Console.WriteLine($"minutes={minutes60}");16 Console.WriteLine($"hours={hours1.00}");17 }outputminutes=60 hours=1.00
extraMinutes ← 0, baseLength ← 00:45:00, total ← 00:45:00, minutes ← 45
5{6 static void Main()7 {8 int extraMinutes→ 0 = 0;9 TimeSpan baseLength→ 00:45:00 = TimeSpan.FromMinutes(45);10 TimeSpan total→ 00:45:00 = baseLength00:45:00 + TimeSpan.FromMinutes(extraMinutes0);1112 string minutes→ 45 = total.TotalMinutes45.ToString(CultureInfo.InvariantCulture);13 string hours→ 0.75 = total.TotalHours0.75.ToString("0.00", CultureInfo.InvariantCulture);1415 Console.WriteLine($"minutes={minutes45}");16 Console.WriteLine($"hours={hours0.75}");17 }outputminutes=45 hours=0.75
extraMinutes ← 30, baseLength ← 00:45:00, total ← 01:15:00, minutes ← 75
5{6 static void Main()7 {8 int extraMinutes→ 30 = 30;9 TimeSpan baseLength→ 00:45:00 = TimeSpan.FromMinutes(45);10 TimeSpan total→ 01:15:00 = baseLength00:45:00 + TimeSpan.FromMinutes(extraMinutes30);1112 string minutes→ 75 = total.TotalMinutes75.ToString(CultureInfo.InvariantCulture);13 string hours→ 1.25 = total.TotalHours1.25.ToString("0.00", CultureInfo.InvariantCulture);1415 Console.WriteLine($"minutes={minutes75}");16 Console.WriteLine($"hours={hours1.25}");17 }outputminutes=75 hours=1.25