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

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

        /// <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;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章