آموزش بدست اوردن فاصله دو زمان در سی شارپ
سلام دوستان
در این آموزش قصد دارم فاصله دو زمان رو به ساده ترین روش ممکن بدست بیارم
برای بدست اوردن فاصله زمانی فقط به کد زیر نیاز دارین
خیلی ساده و تمیز
const int SECOND = 1;
const int MINUTE = 60 * SECOND;
const int HOUR = 60 * MINUTE;
const int DAY = 24 * HOUR;
const int MONTH = 30 * DAY;
/// <summary>
/// محاصبه فاصله زمانی
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static string Calculate(this DateTime dateTime)
{
var ts = new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks);
double delta = Math.Abs(ts.TotalSeconds);
if (delta < 1 * MINUTE)
{
return ts.Seconds == 1 ? "لحظه ای قبل" : ts.Seconds + " ثانیه قبل";
}
if (delta < 2 * MINUTE)
{
return "یک دقیقه قبل";
}
if (delta < 45 * MINUTE)
{
return ts.Minutes + " دقیقه قبل";
}
if (delta < 90 * MINUTE)
{
return "یک ساعت قبل";
}
if (delta < 24 * HOUR)
{
return ts.Hours + " ساعت قبل";
}
if (delta < 48 * HOUR)
{
return "دیروز";
}
if (delta < 30 * DAY)
{
return ts.Days + " روز قبل";
}
if (delta < 12 * MONTH)
{
int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30));
return months <= 1 ? "یک ماه قبل" : months + " ماه قبل";
}
int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365));
return years <= 1 ? "یک سال قبل" : years + " سال قبل";
}
پایان.