• 时间转换:DateTimeExtensions


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Beehive.CloudReader.Utility
    {
        public static class DateTimeExtensions
        {
            /// <summary>
            /// 
            /// </summary>
            /// <param name="dateTime"></param>
            /// <returns></returns>
            public static string ToRelativeDateTimeT(this DateTime dateTime)
            {
                var time = DateTime.Now - dateTime;
    
                //如果不在同一年 则直接显示年月日
                if ((int.Parse(dateTime.ToString("yyyy")) - int.Parse(DateTime.Now.ToString("yyyy"))) != 0) // if (time.TotalDays > 365)
                    return dateTime.ToString("yyyy-MM-dd");
                if (time.TotalDays > 2)
                    return dateTime.ToString("M月d日 HH:mm");
                else
                {
                    var day = DateTime.Now.Date - dateTime.Date;
                    if (day.Days == 2)
                        return string.Format("前天{0:HH:mm}", dateTime);
                    if (day.Days == 1)
                        return string.Format("昨天{0:HH:mm}", dateTime);
                    if (time.TotalMinutes > 60)
                        return string.Format("今天{0:HH:mm}", dateTime);
                    if (time.TotalSeconds > 60)
                        return string.Format("{0}分钟前", time.Minutes);
                    if (time.TotalSeconds < 60 && time.TotalDays >= 0)
                        return "刚刚";
                    else
                    {
                        if (time.Days == 0 && dateTime.Date == DateTime.Now.Date)
                            return string.Format("今天{0:HH:mm}", dateTime);
                        if (time.TotalDays >= -1)
                            return string.Format("明天{0:HH:mm}", dateTime);
                        if (time.TotalDays < -1 && time.TotalDays > -2)
                            return string.Format("后天{0:HH:mm}", dateTime);
                        return dateTime.ToString("M月d日 HH:mm");
                    }
                }
            }
    
    
            public static string ToRelativeDateTimeDay(this DateTime dateTime)
            {
                var time = DateTime.Now - dateTime;
    
                //如果不在同一年 则直接显示年月日
                if ((int.Parse(dateTime.ToString("yyyy")) - int.Parse(DateTime.Now.ToString("yyyy"))) != 0) // if (time.TotalDays > 365)
                    return dateTime.ToString("yyyy-MM-dd");
                if (time.TotalDays > 2)
                    return dateTime.ToString("M月d日");
                else
                {
                    var day = DateTime.Now.Date - dateTime.Date;
                    if (day.Days == 2)
                        return string.Format("前天", dateTime);
                    if (day.Days == 1)
                        return string.Format("昨天", dateTime);
                    if (time.TotalMinutes > 60)
                        return string.Format("{0:HH:mm}", dateTime);
                    if (time.TotalSeconds > 60)
                        return string.Format("{0}分钟前", time.Minutes);
                    if (time.TotalSeconds < 60 && time.TotalDays >= 0)
                        return "刚刚";
                    else
                    {
                        if (time.Days == 0 && dateTime.Date == DateTime.Now.Date)
                            return string.Format("{0:HH:mm}", dateTime);
                        if (time.TotalDays >= -1)
                            return string.Format("明天", dateTime);
                        if (time.TotalDays < -1 && time.TotalDays > -2)
                            return string.Format("后天", dateTime);
                        return dateTime.ToString("M月d日");
                    }
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="dateTime"></param>
            /// <returns></returns>
            public static long ToTimeStamp(this DateTime dateTime)
            {
                var stamp = dateTime.Ticks - new DateTime(1970, 1, 1).Ticks;
                return stamp / 10000000 - 8 * 60 * 60;
            }
    
    
            public static string ToWelcome(this DateTime dateTime)
            {
                var hour = DateTime.Now.Hour;
                var msg = "";
                if (hour >= 6 && hour < 8)
                {
                    msg = "早上好";
                }
                else if (hour >= 8 && hour < 11)
                {
                    msg = "上午好";
                }
                else if (hour >= 11 && hour < 13)
                {
                    msg = "中午好";
                }
                else if (hour >= 13 && hour < 18)
                {
                    msg = "下午好";
                }
                else
                {
                    msg = "晚上好";
                }
                return msg;
            }
        }
    }
  • 相关阅读:
    【docker】关于docker中挂载的解释
    【linux】centos7安装使用rz/sz命令
    【docker】 docker容器内部安装vi命令
    【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
    【docker】docker部署spring boot项目在服务器上
    【spring boot】spring boot后台时间正确,返回给前台的时间不正确,和后台差8个小时
    html页面跳转传递参数
    SpringCloud服务如何在Eureka安全优雅的下线
    使用SpringBoot Admin监控SpringCloud微服务
    对actuator的管理端点进行ip白名单限制(springBoot添加filter)
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/3543819.html
Copyright © 2020-2023  润新知