Cara membulatkan DateTime kepada X minit terdekat dengan C
Membundarkan DateTime kepada bilangan minit tertentu yang terdekat boleh berguna dalam pelbagai senario . Berikut ialah penyelesaian yang mudah dan cekap untuk tugas ini:
- Buat Fungsi Utiliti RoundUp:
public static DateTime RoundUp(DateTime dt, TimeSpan d)
{
return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind);
}
Salin selepas log masuk
- Penggunaan :
Untuk membulatkan DateTime kepada yang terdekat 15 minit, gunakan kod berikut:
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}
Salin selepas log masuk
- Memahami Kod:
- Fungsi RoundUp mengambil masa DateTime (dt ) dan Jangka Masa (d) mewakili selang pembundaran.
- Ungkapan (dt.Ticks d.Ticks - 1) mengira nilai tanda terdekat yang boleh dibahagikan dengan d.Ticks.
- Pembahagian dan pendaraban dengan d.Ticks memastikan keputusan dibundarkan ke selang yang ditentukan.
- Yang baharu DateTime dicipta dengan kutu yang dikira dan Jenis yang sama (tempatan/UTC) seperti yang asal TarikhMasa.
Contoh Output:
- Input: 2011-08-11 16:59
- Keputusan: 2011-08 -11 17:00
Nota Tambahan:
- Pendekatan ini membulatkan ke nombor keseluruhan selang terdekat, tanpa mengira zon waktu.
- Untuk bundarkan ke bawah, gantikan (dt.Ticks d.Ticks - 1) dengan (dt.Ticks 1).
Atas ialah kandungan terperinci Bagaimana untuk Mengumpul DateTime kepada X Minit Terdekat dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!