Yanıtlar:
Aşağıdaki örnekte bunun nasıl yapılacağı gösterilmektedir:
DateTime a = new DateTime(2010, 05, 12, 13, 15, 00);
DateTime b = new DateTime(2010, 05, 12, 13, 45, 00);
Console.WriteLine(b.Subtract(a).TotalMinutes);
Yürütüldüğünde, tarih / saatler arasında 30 dakikalık bir fark olduğundan "30" yazdırılır.
Bunun sonucu, diğer yararlı özellikleri veren DateTime.Subtract(DateTime x)bir TimeSpan Nesnesi'dir .
TotalMinutes! (değil Minutes)
TimeSpanYapıyı istiyorsunuz :
TimeSpan diff = dateTime1 - dateTime2;
Bir TimeSpan nesnesi, pozitif veya negatif gün, saat, dakika, saniye ve saniyenin kesir sayısı olarak ölçülen bir zaman aralığını (süre veya geçen süre) temsil eder. TimeSpan yapısı, günün saatini temsil etmek için de kullanılabilir, ancak yalnızca belirli bir tarihle ilgisi yoksa.
Günleri, saatleri, dakikaları, saniyeleri ve milisaniyeleri bu yapıdan geri almak için çeşitli yöntemler vardır.
Sadece farkla ilgileniyorsanız:
TimeSpan diff = Math.Abs(dateTime1 - dateTime2);
sipariş ne olursa olsun zaman arasındaki olumlu farkı verecektir.
Eğer zaman bileşenini yeni aldıysanız, ancak saatler gece yarısına kadar bölünebiliyorsa, gerçek farkı elde etmek için açıklığa 24 saat eklemeniz gerekir:
TimeSpan diff = dateTime1 - dateTime2;
if (diff < 0)
{
diff = diff + TimeSpan.FromDays(1);
}
Her ikisi de yapabileceğiniz UTC tarih-saat değerleri ise TimeSpan diff = dateTime1 - dateTime2;
Aksi takdirde, olası her durumda doğru cevabı alma şansınız sıfırdır.
var startDate = new DateTime(2007, 3, 24);
var endDate = new DateTime(2009, 6, 26);
var dateDiff = endDate.Subtract(startDate);
var date = string.Format("{0} years {1} months {2} days", (int)dateDiff.TotalDays / 365,
(int)(dateDiff.TotalDays % 365) / 30, (int)(dateDiff.TotalDays % 365) / 30);
Console.WriteLine(date);
private void button1_Click(object sender, EventArgs e)
{
TimeSpan timespan;
timespan = dateTimePicker2.Value - dateTimePicker1.Value;
int timeDifference = timespan.Days;
MessageBox.Show(timeDifference.ToString());
}
İki Tarih / Saat Nesnesi arasındaki farkı elde etmek için aşağıdaki şekilde kullanabilirsiniz. Dt1 ve dt2 kodlarının ardından DateTime nesneleri olduğunu varsayalım.
TimeSpan diff = dt2.Subtract(dt1);
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss")). Bkz: MSDN Özel TimeSpan Biçimi