[C#] 剛剛、分鐘前、小時前、天前、周前、個月前、年前、分鐘後、小時後、天後、周後、年後 的時間轉換

2018-05-03


最近在寫一些東西,但是常常設計那邊要出現的時間,不是 yyyy-MM-dd HH:mm 而是要 剛剛、分鐘前、小時前、天前、周前、個月前、年前、分鐘後、小時後、天後、周後、年後  這類的東西,所以就順手寫一個

不知道有沒有 bug 就姑且用吧 :)

image


C# Code:

        private string GetTimeString(DateTime dateTime) {

            var now = DateTime.Now;
            if (dateTime == now) { return "現在"; };
            var t1 = now;
            var t2 = now;
            var tmp = "";
            if (dateTime > now)
            {
                t2 = dateTime;
                tmp = "後";
            }
            else {
                t1 = dateTime;
                tmp = "前";
            }
            var ts = t2 - t1;
            if (ts.TotalDays >= 365) {
                return Math.Floor(ts.TotalDays/365) + "年" + tmp;
            }
            if ( (ts.TotalDays /31) >1) {
                
                return Math.Floor(ts.TotalDays / 31) + "個月" + tmp;
            }
            if (ts.TotalDays>=1)
            {

                return Math.Floor(ts.TotalDays) + "天" + tmp;
            }
            if (ts.TotalHours >= 1)
            {

                return Math.Floor(ts.TotalHours) + "小時" + tmp;
            }
            if (ts.TotalMinutes >= 1)
            {

                return Math.Floor(ts.TotalMinutes) + "分鐘" + tmp;
            }
            if (ts.Seconds >= 1)
            {

                return Math.Floor(ts.TotalSeconds) + "秒" + tmp;
            }
            return "剛剛";
        }

需要的就自行取用吧,不贅述了...

後記,現在是 2023 我問了 ChatGPT ,他給了其他解法


code:


強大阿


當麻許的超技八 2014 | Donma Hsu Design.