Time to Since Function เหมือนกับ Facebook ด้วย C#
เอาไว้แสดงค่าจาก CreatedDate หรือ UpdatedDate เพื่อบอกว่า Update ผ่านมาแล้วเป็นเวลาเท่าไร่ เหมือนกับ Facebook
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace KOOOOB
- {
- public static class TimeToSince
- {
- public static string ToTimeSinceString(DateTime value)
- {
- const int SECOND = 1;
- const int MINUTE = 60 * SECOND;
- const int HOUR = 60 * MINUTE;
- const int DAY = 24 * HOUR;
- const int MONTH = 30 * DAY;
- TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - value.Ticks);
- double seconds = ts.TotalSeconds;
- if (seconds < 1 * MINUTE)
- return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " seconds ago";
- if (seconds < 60 * MINUTE)
- return ts.Minutes <= 1 ? "one minute ago" : ts.Days + " minutes ago";
- if (seconds < 120 * MINUTE)
- return "an hour ago";
- if (seconds < 24 * HOUR)
- return ts.Hours <= 1 ? "one hour ago" : ts.Days + " hours ago";
- if (seconds < 48 * HOUR)
- return "yesterday";
- if (seconds < 30 * DAY)
- if (ts.Days >= 7)
- {
- double days = Math.Ceiling((double)ts.Days / 7);
- return days <= 1 ? "one week ago" : days + " weeks ago";
- }
- else
- {
- return ts.Days <= 1 ? "one day ago" : ts.Days + " days ago";
- } // end if
- if (seconds < 12 * MONTH)
- {
- int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30));
- return months <= 1 ? "one month ago" : months + " months ago";
- } // end if
- int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365));
- return years <= 1 ? "one year ago" : years + " years ago";
- }
- } // end class
- } // end namespace
ความคิดเห็น
แสดงความคิดเห็น