.net 时间年前月前日前时前分前秒前计算

3 篇文章 0 订阅

        编码能力不是很强,有没有很好的计算方式ε=(´ο`*)))!!!求解!!!

        /// <summary>
        /// 日期间隔计算
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        private static string Duration(DateTime dt)
        {
            DateTime now = DateTime.Now;

            int second = now.Second - dt.Second;
            int min = now.Minute - dt.Minute;
            int hour = now.Hour - dt.Hour;
            int day = now.Day - dt.Day;
            int month = now.Month - dt.Month;
            int year = now.Year - dt.Year;
            int sumDay = Convert.ToDateTime(dt.ToString("yyyy-MM")).AddMonths(1).AddDays(-1).Day;
            TimeSpan ts = now - dt;

            if (now.Second < dt.Second) 
            {
                min--;
                second += 60;
            }

            if (now.Minute < dt.Minute)
            {
                hour--;
                min += 60;
            }

            if (now.Hour < dt.Hour)
            {
                day--;
                hour += 24;
            }

            if (now.Day < dt.Day)
            {
                month--;
                day += sumDay;
            }

            if (now.Month <= dt.Month)
            {
                year--;
                month += 12;
            }

            if (month == 12)
            {
                year++;
                month -= 12;
            }

            string result = "";

            if (year >= 1)
            {
                result = $"{year}年前";
            }

            else if (month >= 1)
                result = $"{month}个月前";

            else if (day >= 1)
                result = $"{day}天前";

            else if (hour >= 1)
                result = $"{hour}小时前";

            else if (min >= 1)
                result = $"{min}分钟前";

            else
                result = $"{second}秒前";

            return result;
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值