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

 

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