Bagaimana cara saya mendapatkan perbedaan waktu antara dua DateTime
objek menggunakan C #?
159
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.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Lihat: Format TimeSpan Kustom MSDNTotalMinutes
! (tidakMinutes
)Anda ingin
TimeSpan
struct:Ada berbagai metode untuk mendapatkan kembali hari, jam, menit, detik, dan milidetik dari struktur ini.
Jika Anda hanya tertarik pada perbedaannya maka:
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:
sumber
Yang Anda butuhkan adalah menggunakan metode Kurangi kelas DateTime , yang mengembalikan TimeSpan .
sumber
Cara yang biasanya saya lakukan adalah mengurangi dua DateTime dan ini memberi saya TimeSpan yang akan memberi tahu saya perbedaannya.
Ini sebuah contoh:
sumber
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.
sumber
sumber
Anda perlu menggunakan TimeSpan . Berikut ini beberapa contoh kode:
sumber
TimeSpan sincelast = DateTime.Now - LastUpdate;
sumber
Anda bisa menggunakan dengan cara berikut untuk mencapai perbedaan antara dua Objek Datetime. Misalkan ada objek DateTime dt1 dan dt2 maka kodenya.
sumber