Periksa perbedaan dalam detik antara dua kali


103

Hi all Saat ini saya sedang mengerjakan proyek di mana ketika peristiwa tertentu terjadi, detail tentang peristiwa tersebut termasuk waktu terjadinya peristiwa tersebut ditambahkan ke dalam daftar array.

Setelah metode selesai, saya kemudian meneruskan daftar ke metode lain yang memeriksa nilainya. Sebelum saya pergi melalui loop saya memeriksa waktu saat ini dari PC saya dan saya perlu memeriksa apakah perbedaan antara waktu yang disimpan dalam daftar array dan waktu saat ini lebih besar dari 5 detik.

Bagaimana saya akan melakukan ini.

Jawaban:


267

Dengan asumsi dateTime1dan dateTime2adalah DateTimenilai:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

Dalam kasus Anda, Anda akan menggunakan DateTime.Nowsebagai salah satu nilai dan waktu dalam daftar sebagai yang lain. Berhati-hatilah dengan urutannya, karena hasilnya bisa negatif jika dateTime1lebih awal dari dateTime2.


3
Terima kasih, omong-omong, var akan berakhir menjadi dua kali lipat: TotalSeconds
Loaderon

3
Terima kasih ... Saya baru saja digigit dengan menggunakan (Milidetik) secara tidak sengaja ketika saya seharusnya benar-benar menggunakan (TotalMilliseconds) ... aduh.
Andrew pate


15

Versi ini selalu mengembalikan selisih jumlah detik sebagai angka positif (hasil yang sama dengan solusi @ freedeveloper):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4

Saya menggunakan ini untuk menghindari interval negatif.

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

4
Gunakan Math.Abssebagai gantinya, kode ini kurang dapat dibaca dan berkinerja daripada hanya menggunakan jawaban di atas.
ProgramFast
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.