Sunt momente cand avem nevoie sa calculam diferenta a doua date. Pentru a putea calcula aceasta diferenta este nevoie doar sa folosim operatorul "-" intre cele doua date. Obiectul pe care il obtinem este de tip TimeSpan. Pana aici totul este in regula.
Dar ce reprezinta aceasta valorea? Poate sa fie negativa, positiva? Cum obtinem delta intre cele doua?
Obiectul de tip TimeSpan pe care il obtinem reprezinta diferenta intre cele doua date. Aceasta valoare poate sa fie negativa sau pozitiva. Daca apelam propietatiile din TimeSpan care ne returneaza minutele,secundele,... sau numarul total de minute, secunde,... acestea o sa ne returneaza valori negative sau pozitive, depinde de ce valori le comparam.
Daca dorim sa obtinem valoarea pozitiva a acestei diferente, putem sa folosim metoda "Duration()". Aceasta metoda returneaza un TimeSpan cu o valoarea pozitiva, care reprezinta timpul trecut intre cele doua date comparate.
Iata si un exemplu:
Dar ce reprezinta aceasta valorea? Poate sa fie negativa, positiva? Cum obtinem delta intre cele doua?
Obiectul de tip TimeSpan pe care il obtinem reprezinta diferenta intre cele doua date. Aceasta valoare poate sa fie negativa sau pozitiva. Daca apelam propietatiile din TimeSpan care ne returneaza minutele,secundele,... sau numarul total de minute, secunde,... acestea o sa ne returneaza valori negative sau pozitive, depinde de ce valori le comparam.
Daca dorim sa obtinem valoarea pozitiva a acestei diferente, putem sa folosim metoda "Duration()". Aceasta metoda returneaza un TimeSpan cu o valoarea pozitiva, care reprezinta timpul trecut intre cele doua date comparate.
Iata si un exemplu:
class Program
{
static void Main(string[] args)
{
DateTime dateTime1 = DateTime.Now;
DateTime dateTime2 = dateTime1.AddHours(1);
TimeSpan deltadt1dt2 = dateTime1 - dateTime2;
TimeSpan deltadt2dt1 = dateTime2 - dateTime1;
Console.WriteLine(string.Format("datetime1: {0}", dateTime1));
Console.WriteLine(string.Format("datetime2: {0}", dateTime2));
Console.WriteLine(string.Format("datetime1-datetime2: {0}", deltadt1dt2));
Console.WriteLine(string.Format("datetime2-datetime1: {0}", deltadt2dt1));
Console.WriteLine(string.Format("Duration of datetime1 - datetime2: {0}",deltadt1dt2.Duration()));
Console.WriteLine(string.Format("Duration of datetime2 - datetime1: {0}", deltadt2dt1.Duration()));
Console.ReadKey();
}
}
Iar cea ce se afiseaza este:datetime1: 10/19/2010 11:44:17 PM
datetime2: 10/20/2010 12:44:17 AM
datetime1-datetime2: -01:00:00
datetime2-datetime1: 01:00:00
Duration of datetime1 - datetime2: 01:00:00
Duration of datetime2 - datetime1: 01:00:00
Metoda "Duration()" poate sa fie folosita cu succes in loc sa facem Abs din valorea returnata de o propietate a TimeSpanului obtinut, sau sa facem Abs la Ticks, iar apoi sa generam un nou TimeSpan sau DateTime.
Comments
Post a Comment