예제 #1
0
        /// <summary>
        /// 获取日期的日常表达形式,要求最近三天依次用 {今天,昨天,前天} 表示
        /// </summary>
        /// <param name="day"></param>
        /// <returns>要求最近三天依次用 {今天、昨天、前天} 表示</returns>
        public static String ToDayString(DateTime day)
        {
            var today = DateTools.GetNow();

            if (day.Kind == DateTimeKind.Utc)
            {
                day = new DateTime(day.Year, day.Month, day.Day, day.Hour, day.Minute, day.Second, day.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone);
            }
            else if (day.Kind == DateTimeKind.Local)
            {
                day = day.ToUniversalTime();
                day = new DateTime(day.Year, day.Month, day.Day, day.Hour, day.Minute, day.Second, day.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone);
            }
            if (IsDayEqual(day, today))
            {
                return(Runtime.Lang.Get("today"));
            }
            if (IsDayEqual(day, today.AddDays(-1)))
            {
                return(Runtime.Lang.Get("yesterday"));
            }
            if (IsDayEqual(day, today.AddDays(-2)))
            {
                return(Runtime.Lang.Get("thedaybeforeyesterday"));
            }
            return(day.ToString("yyyy-MM-dd"));
        }
예제 #2
0
        /// <summary>
        /// 获取时间的日常表达形式,格式为 {**小时前,**分钟前,**秒前},以及 {昨天,前天}
        /// </summary>
        /// <param name="t"></param>
        /// <returns>格式为 {**小时前,**分钟前,**秒前},以及 {昨天,前天}</returns>
        public static String ToTimeString(DateTime t)
        {
            var now = DateTools.GetNow();

            if (t.Kind == DateTimeKind.Utc)
            {
                t = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, t.Second, t.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone);
            }
            else if (t.Kind == DateTimeKind.Local)
            {
                t = t.ToUniversalTime();
                t = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, t.Second, t.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone);
            }
            var span = now.Subtract(t);

            if (cvt.IsDayEqual(t, now))
            {
                if (span.Hours > 0)
                {
                    return(span.Hours + Runtime.Lang.Get("houresAgo"));
                }
                else
                {
                    if (span.Minutes == 0)
                    {
                        if (span.Seconds == 0)
                        {
                            return(Runtime.Lang.Get("justNow"));
                        }
                        else
                        {
                            return(span.Seconds + Runtime.Lang.Get("secondAgo"));
                        }
                    }
                    else
                    {
                        return(span.Minutes + Runtime.Lang.Get("minuteAgo"));
                    }
                }
            }
            if (cvt.IsDayEqual(t, now.AddDays(-1)))
            {
                return(Runtime.Lang.Get("yesterday"));
            }
            else if (cvt.IsDayEqual(t, now.AddDays(-2)))
            {
                return(Runtime.Lang.Get("thedaybeforeyesterday"));
            }
            else
            {
                return(t.ToString("yyyy-MM-dd"));
            }
        }