محاسبه فاصله زمانی در سی شارپ
دوشنبه 25 خرداد 1394محاسبه فاصله زمانی از درج یک رویداد یا هر موردی دیگر.
من از استفاده کردم اگه مشکلی داشت یا راه بهتری هست بفرمائید تا ما هم انجام بدهیم.
#region TimeCalculator 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 + " سال قبل"; } #endregion TimeCalculator
- C#.net
- 4k بازدید
- 2 تشکر