Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk memaparkan masa relatif (mis., '2 jam yang lalu') dalam C#?
Panduan ini menunjukkan bagaimana untuk memaparkan masa relatif dengan cekap (mis., "2 jam yang lalu," "sebulan yang lalu") dalam C#, keperluan umum dalam banyak aplikasi. Kami akan memberi tumpuan kepada pendekatan yang jelas dan dapat dipelihara.
Unit masa yang menentukan:
Untuk kebolehbacaan dan kebolehkerjaan yang lebih baik, kami menggunakan pemalar untuk mewakili unit masa yang berbeza:
<code class="language-csharp">const int SECOND = 1; const int MINUTE = 60 * SECOND; const int HOUR = 60 * MINUTE; const int DAY = 24 * HOUR; const int MONTH = 30 * DAY; // Approximation</code>Mengira perbezaan masa:
Logik teras melibatkan mengira perbezaan antara masa semasa (UTC) dan sasaran menggunakan
, kemudian menukar hasilnya ke saat:
DateTime
TimeSpan
<code class="language-csharp">TimeSpan timeDifference = DateTime.UtcNow - yourDate; double seconds = Math.Abs(timeDifference.TotalSeconds);</code>
kami menggunakan satu siri pernyataan untuk menentukan rentetan masa relatif yang sesuai berdasarkan nilai
:
if
seconds
Pendekatan ini menawarkan kaedah yang mudah dan mudah disesuaikan untuk memaparkan masa relatif, mudah dikembangkan untuk memasukkan tahun atau unit masa lain yang diperlukan. Ingat bahawa
<code class="language-csharp">string relativeTime; if (seconds < MINUTE) { relativeTime = $"{seconds} seconds ago"; } else if (seconds < HOUR) { relativeTime = $"{Math.Round(seconds / MINUTE)} minutes ago"; } else if (seconds < DAY) { relativeTime = $"{Math.Round(seconds / HOUR)} hours ago"; } else if (seconds < MONTH) { relativeTime = $"{Math.Round(seconds / DAY)} days ago"; } else { relativeTime = $"{Math.Round(seconds / MONTH)} months ago"; }</code>
Atas ialah kandungan terperinci Bagaimana untuk memaparkan masa relatif (mis., '2 jam yang lalu') dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!