Jawaban:
Contoh berikut menunjukkan bagaimana melakukan ini:
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);
Ketika dieksekusi ini mencetak "30" karena ada perbedaan 30 menit antara tanggal / waktu.
Hasilnya DateTime.Subtract(DateTime x)
adalah Obyek TimeSpan yang memberikan properti berguna lainnya.
TotalMinutes
! (tidak Minutes
)
Anda ingin TimeSpan
struct:
TimeSpan diff = dateTime1 - dateTime2;
Objek TimeSpan mewakili interval waktu (durasi waktu atau waktu yang berlalu) yang diukur sebagai jumlah hari, jam, menit, detik, dan pecahan positif atau negatif dari satu detik. Struktur TimeSpan juga dapat digunakan untuk mewakili waktu hari, tetapi hanya jika waktu tidak terkait dengan tanggal tertentu.
Ada berbagai metode untuk mendapatkan kembali hari, jam, menit, detik, dan milidetik dari struktur ini.
Jika Anda hanya tertarik pada perbedaannya maka:
TimeSpan diff = Math.Abs(dateTime1 - dateTime2);
akan memberi Anda perbedaan positif antara waktu terlepas dari urutan.
Jika Anda baru saja mendapatkan komponen waktu tetapi waktu dapat dipisah pada tengah malam maka Anda perlu menambahkan 24 jam ke rentang untuk mendapatkan perbedaan yang sebenarnya:
TimeSpan diff = dateTime1 - dateTime2;
if (diff < 0)
{
diff = diff + TimeSpan.FromDays(1);
}
JIKA keduanya nilai waktu tanggal UTC yang dapat Anda lakukan TimeSpan diff = dateTime1 - dateTime2;
Kalau tidak, kesempatan Anda untuk mendapatkan jawaban yang benar dalam setiap kasus yang mungkin adalah nol.
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());
}
Anda bisa menggunakan dengan cara berikut untuk mencapai perbedaan antara dua Objek Datetime. Misalkan ada objek DateTime dt1 dan dt2 maka kodenya.
TimeSpan diff = dt2.Subtract(dt1);
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Lihat: Format TimeSpan Kustom MSDN