Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengumpul DateTime kepada Kenaikan Masa Terdekat dalam C#?

Bagaimanakah Saya Boleh Mengumpul DateTime kepada Kenaikan Masa Terdekat dalam C#?

Barbara Streisand
Lepaskan: 2025-01-06 19:06:40
asal
391 orang telah melayarinya

How Can I Round Up a DateTime to the Nearest Time Increment in C#?

Round Up DateTime to Nearest Time Increment

Dalam banyak senario pengaturcaraan, membulatkan nilai DateTime kepada kenaikan masa khusus yang terdekat menjadi perlu. Sebagai contoh, keperluan biasa adalah untuk membundarkan kepada 15 minit terdekat untuk menyelaraskan dengan kekangan jadual perniagaan.

Untuk menangani keperluan ini, fungsi mudah dan berkesan dipanggil RoundUp boleh digunakan. Ia memerlukan dua parameter: nilai DateTime dan TimeSpan mewakili kenaikan yang diingini.

Pelaksanaan Fungsi:

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:

Coretan kod berikut menunjukkan cara menggunakan fungsi RoundUp pada pelbagai DateTime nilai dengan kenaikan 15 minit:

// Round up to nearest 15-minute increment
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:00:00}

var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:00:00}

var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:15:00}
Salin selepas log masuk

Dalam contoh ini:

  • dt1 dengan nilai awal "16:59" dibundarkan ke atas kepada "17:00" .
  • dt2 dengan nilai awal "17:00" kekal tidak berubah kerana ia sudah jatuh pada Sempadan 15 minit.
  • dt3 dengan nilai awal "17:01" dibundarkan kepada "17:15".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul DateTime kepada Kenaikan Masa Terdekat dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan