• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
jy_song
博客园    首页    新随笔    联系   管理    订阅  订阅

C#日期显示

public class DateTimeHelper
    {
        /// <summary>
        /// 将时间转换成长整形秒数
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static long GetTimeMilliseconds(DateTime time)
        {
            return (long)time.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
        }

        /// <summary>
        /// 将秒数转换成日期
        /// </summary>
        /// <param name="seconds"></param>
        /// <returns></returns>
        public static DateTime GetTime(long milliseconds)
        {
            return new DateTime(1970, 1, 1, 0, 0, 0).AddMilliseconds(milliseconds);
        }

        /// <summary>
        /// 换算计算时间为字符串:今天,昨天等
        /// </summary>
        /// <param name="milliseconds"></param>
        /// <param name="lang"></param>
        /// <returns></returns>
        public static string GetTimeString(long milliseconds, string lang = "zh")
        {
            var time = GetTime(milliseconds);
            var now = DateTime.Now;
            TimeSpan timespan = now - time;
            switch (lang)
            {
                case "en":
                    #region 英文
                    if (timespan < new TimeSpan(0, 0, 0))
                    {
                        //未来(一般是不会存在的)
                        if (time.Date == now.Date)
                        {
                            // 一天以内
                            return "Today" + time.ToString(" HH:mm"); // Today
                        }
                        if (time.Date == now.Date.AddDays(1))
                        {
                            // 一天以内
                            return "Tomorrow" + time.ToString(" HH:mm");  // Tomorrow
                        }
                        if (time.Year == now.Year)
                        {
                            // 一年内 
                            return time.ToString("MM-dd HH:mm");
                        }
                        return time.ToString("yyyy-MM-dd HH:mm");
                    }
                    if (timespan < new TimeSpan(0, 1, 0))
                    {
                        return "Just Now";//1分钟内
                    }
                    if (timespan < new TimeSpan(1, 0, 0))
                    {
                        return timespan.Minutes + (timespan.Minutes == 1 ? " minute ago" : " mins ago");//1小时以内
                    }
                    if (time.Date == now.Date)
                    {
                        return "Today" + time.ToString(" HH:mm");//同一天
                    }
                    if (time.Date == now.AddDays(-1).Date)
                    {
                        return "Yesterday" + time.ToString(" HH:mm");//昨天
                    }
                    if (time.Year == now.Year)
                    {
                        return time.ToString("MM-dd HH:mm");//一年内
                    }
                    return time.ToString("yyyy-MM-dd HH:mm");
                #endregion
                default:
                    #region 中文

                    if (timespan < new TimeSpan(0, 0, 0))
                    {
                        //未来(一般是不会存在的)
                        if (time.Date == now.Date)
                        {
                            // 一天以内
                            return "今天" + time.ToString(" HH:mm"); // Today
                        }
                        if (time.Date == now.Date.AddDays(1))
                        {
                            // 一天以内
                            return "明天" + time.ToString(" HH:mm");  // Tomorrow
                        }
                        if (time.Year == now.Year)
                        {
                            // 一年内 
                            return time.ToString("MM-dd HH:mm");
                        }
                        return time.ToString("yyyy-MM-dd HH:mm");
                    }
                    if (timespan < new TimeSpan(0, 1, 0))
                    {
                        return "刚刚";//1分钟内
                    }
                    if (timespan < new TimeSpan(1, 0, 0))
                    {
                        return timespan.Minutes + "分钟前";//1小时以内
                    }
                    if (time.Date == now.Date)
                    {
                        return "今天" + time.ToString(" HH:mm");//同一天
                    }
                    if (time.Date == now.AddDays(-1).Date)
                    {
                        return "昨天" + time.ToString(" HH:mm");//昨天
                    }
                    if (time.Year == now.Year)
                    {
                        return time.ToString("MM-dd HH:mm");//一年内
                    }
                    return time.ToString("yyyy-MM-dd HH:mm");

                    #endregion
            }
        }

        /// <summary>
        /// 计算年龄
        /// </summary>
        /// <param name="birthday"></param>
        /// <returns></returns>
        public static int GetAge(long birthday)
        {
            try
            {
                var time = GetTime(birthday);
                var y = Convert.ToInt32(DateTime.Now.Year - time.Year);
                var m = Convert.ToInt32(DateTime.Now.Month - time.Month);//比较月份大小
                var d = Convert.ToInt32(DateTime.Now.Date - time.Date);//比较日期大小
                int age = y;
                if (m < 0)
                {
                    age = age - 1;
                }
                else if (m == 0)
                {
                    if (d < 0)
                    {
                        age = age - 1;
                    }
                }
                return age;
            }
            catch (Exception)
            {

                return 18;
            }
        }
    }

 

posted @ 2017-02-15 16:13  jy_song  阅读(551)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3