Ce face TimeSpan
TimeSpan măsoară un interval de timp, de exemplu durata unui film sau diferența dintre două DateTime. Se creează cu constructorul (ore, minute, secunde) sau cu metodele FromDays, FromHours, FromMinutes, FromSeconds, FromMilliseconds.
Proprietățile Hours, Minutes, Seconds dau doar componenta respectivă (0-23, 0-59), iar TotalHours, TotalMinutes, TotalSeconds dau toată durata în unitatea respectivă, ca double. ToString() afișează formatul [z.]hh:mm:ss; pentru alt format, separatorii se scriu cu backslash: @"hh\:mm".
Exemple
Exemplul 1: Creare, componente și totaluri
var film = new TimeSpan(2, 30, 0);
Console.WriteLine(film);
Console.WriteLine(film.TotalMinutes);
Console.WriteLine($"{film.Hours} h {film.Minutes} min");
var total = film + TimeSpan.FromMinutes(45);
Console.WriteLine(total.ToString(@"hh\:mm"));
Console.WriteLine(TimeSpan.FromHours(36));
Rezultat
02:30:00
150
2 h 30 min
03:15
1.12:00:00
Exemplul 2: Durata totală a unei liste de melodii
TimeSpan.Parse("03:45") ar însemna 3 ore și 45 de minute, așa că minutele și secundele se citesc cu ParseExact.
using System.Globalization;
string[] melodii = ["03:45", "04:10", "02:55"];
TimeSpan total = TimeSpan.Zero;
foreach (string m in melodii)
total += TimeSpan.ParseExact(m, @"mm\:ss", CultureInfo.InvariantCulture);
Console.WriteLine(total.ToString(@"mm\:ss"));
Console.WriteLine(total.TotalSeconds);
Console.WriteLine(total > TimeSpan.FromMinutes(10));
Rezultat
10:50
650
True
Greșeli frecvente
- Confuzia dintre
Minutes(componenta, 0-59) șiTotalMinutes(toată durata): pentru 2 h 30 min,Minuteseste 30, iarTotalMinutes150. - În formatele personalizate,
:și.trebuie scăpate (\:), altfel primeștiFormatException. - Formatul
hharată doar orele din zi (0-23); pentru durate peste o zi, include și%dsau foloseșteTotalHours.
Comenzi înrudite
DateTime: Reprezintă o dată cu oră: creare, adunare de zile și luni, diferențe, formatare și citire din text cu ParseExact.DateOnly și TimeOnly: DateOnly ține doar o zi din calendar, TimeOnly doar o oră din zi: potrivite pentru zile de naștere, scadențe și program de lucru.Formatarea numerelor și string.Format: Specificatori de format (N2, F1, D5, X) și aliniere în string.Format, ToString și șiruri interpolate, cu cultura ro-RO.