Pertanyaan Hitung selisih antara dua tanggal (jumlah hari)?


Saya melihat bahwa pertanyaan ini telah dijawab Jawa, JavaScript, dan PHP, tetapi tidak C #. Jadi, bagaimana mungkin seseorang menghitung jumlah hari antara dua tanggal dalam C #?


815
2017-10-22 13:47


asal


Jawaban:


Asumsi StartDate dan EndDate adalah tipe DateTime:

(EndDate - StartDate).TotalDays

1531
2017-10-22 13:48



Gunakan objek TimeSpan yang merupakan hasil dari substraksi tanggal:

DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;

112
2017-10-22 13:49



Jawaban atas adalah benar, tetapi jika Anda hanya ingin hari KESELURUHAN sebagai int dan senang untuk melupakan komponen waktu tanggal kemudian pertimbangkan:

(EndDate.Date - StartDate.Date).Days

Sekali lagi dengan asumsi StartDate dan EndDate adalah tipe DateTime.


66
2017-08-27 03:33



Saya pikir ini akan melakukan apa yang Anda inginkan:

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;

40
2017-10-22 13:49



DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;

31
2017-10-22 13:49



Jika seseorang ingin menghitung hari penuh sebagai hari ganda (a, b tipe DateTime):

 (a.Date - b.Date).TotalDays

14
2018-06-13 14:41



// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double

Anda juga bisa mendapatkan perbedaan dalam hitungan detik, milidetik dan kutu.


7
2017-11-17 06:30



Anda dapat mencoba ini

EndDate.Date.Subtract(DateTime.Now.Date).Days

6
2018-06-11 06:18



Untuk a dan b sebagai dua DateTime jenis:

DateTime d = DateTime.Now;
DateTime c = DateTime.Now;
c = d.AddDays(145);
string cc;
Console.WriteLine(d);
Console.WriteLine(c);
var t = (c - d).Days;
Console.WriteLine(t);
cc = Console.ReadLine();

1
2017-07-10 19:16



Untuk pemula seperti saya yang akan tersandung pada masalah kecil ini, dalam garis sederhana, dengan konversi sampel ke int:

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

Ini menghitung hari total dari hari ini (DateTime.UtcNow.Date) ke tanggal yang diinginkan (myDateTime.Date).

Jika myDateTime adalah kemarin, atau tanggal yang lebih lama dari hari ini, ini akan memberikan hasil bilangan bulat positif (+).

Di sisi lain, jika myDateTime adalah besok atau di masa depan, ini akan memberikan hasil integer negatif (-) karena aturan penambahan.

Selamat coding! ^ _ ^


1
2017-08-01 21:36



Menggunakan rentang waktu akan menyelesaikan masalah karena memiliki banyak atribut:

DateTime strt_date = DateTime.Now;
DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59");
//DateTime add_days = end_date.AddDays(1);
TimeSpan nod = (end_date - strt_date);
Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + "");
Console.ReadKey();

1
2018-06-01 04:31