Освоение вычислений относительного времени на C#: руководство для разработчиков

  1. Использование метода вычитания DateTime.
    Один простой способ вычислить относительное время — использовать метод Subtractкласса DateTime. Вот пример:
DateTime currentTime = DateTime.Now;
DateTime pastTime = currentTime.Subtract(TimeSpan.FromMinutes(30));
TimeSpan timeDifference = currentTime - pastTime;
if (timeDifference.TotalMinutes < 1)
{
    Console.WriteLine("Just now");
}
else if (timeDifference.TotalMinutes < 60)
{
    Console.WriteLine($"{timeDifference.TotalMinutes} minutes ago");
}
else if (timeDifference.TotalHours < 24)
{
    Console.WriteLine($"{timeDifference.TotalHours} hours ago");
}
else
{
    Console.WriteLine($"{timeDifference.TotalDays} days ago");
}
  1. Использование структуры TimeSpan.
    Другой подход — использовать структуру TimeSpanдля расчета разницы во времени и последующего ее форматирования соответствующим образом. Вот пример:
DateTime currentTime = DateTime.Now;
DateTime pastTime = currentTime.Subtract(TimeSpan.FromHours(5));
TimeSpan timeDifference = currentTime - pastTime;
string relativeTime;
if (timeDifference.TotalMinutes < 1)
{
    relativeTime = "Just now";
}
else if (timeDifference.TotalMinutes < 60)
{
    relativeTime = $"{timeDifference.TotalMinutes} minutes ago";
}
else if (timeDifference.TotalHours < 24)
{
    relativeTime = $"{timeDifference.TotalHours} hours ago";
}
else
{
    relativeTime = $"{timeDifference.TotalDays} days ago";
}
Console.WriteLine(relativeTime);
  1. Использование библиотеки Humanizer:
    Библиотека Humanizer — популярный выбор для удобной работы с датами и временем. Он предоставляет удобные методы расчета относительного времени. Чтобы использовать его, вам необходимо установить пакет Humanizer NuGet. Вот пример:
using Humanizer;
DateTime currentTime = DateTime.Now;
DateTime pastTime = currentTime.Subtract(TimeSpan.FromDays(3));
string relativeTime = pastTime.Humanize();
Console.WriteLine(relativeTime);

Вычисление относительного времени в C# важно для создания удобных для пользователя приложений. В этой статье мы рассмотрели различные методы, в том числе использование класса DateTime, структуры TimeSpanи библиотеки Humanizer. Включив эти методы в свой код, вы сможете предоставить пользователям более интуитивный и естественный способ отображения времени.

Не забудьте выбрать метод, который лучше всего соответствует потребностям вашего приложения, и легко интегрировать его в свою кодовую базу. Приятного кодирования!