时间转换: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;
        }
    }
}

 

转载于:https://www.cnblogs.com/wzq806341010/p/3543819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值