| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 | using System;using System.Diagnostics;using ET;namespace GFGGame{    public partial class TimeUtil    {        /// <summary>        ///         /// </summary>        /// <param name="curTime">毫秒</param>        /// <param name="endTime">毫秒</param>        /// <returns></returns>        public static string FormattingTime(long curTime, long endTime)        {            long time = (endTime / 1000) - (curTime / 1000);            int days = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_DAY);            if (days >= 1)            {                return string.Format("{0}天", days);            }            int hours = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_HOUR);            if (hours >= 1)            {                return string.Format("{0}小时", hours);            }            int minutes = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_MUNITE);            if (minutes >= 1)            {                return string.Format("{0}分钟", minutes);            }            return string.Format("{0}秒", time);        }        public static int FormattingTime11(long curTime, long endTime)        {            long time = (endTime / 1000) - (curTime / 1000);            int days = (int)Math.Ceiling((decimal)time / TimeUtil.SECOND_PER_DAY);            return days;        }        /// <summary>        ///         /// </summary>        /// <param name="curTime">毫秒</param>        /// <param name="endTime">毫秒</param>        /// <param name="num"></param>        /// <param name="str"></param>        public static void FormattingTime(long curTime, long endTime, out int num, out string str)        {            long time = (endTime / 1000) - (curTime / 1000);            int days = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_DAY);            if (days >= 1)            {                num = days;                str = "天";                return;            }            int hours = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_HOUR);            if (hours >= 1)            {                num = hours;                str = "小时";                return;            }            int minutes = (int)Math.Floor((decimal)time / TimeUtil.SECOND_PER_MUNITE);            if (minutes >= 1)            {                num = minutes;                str = "分钟";                return;            }            num = minutes;            str = "秒";        }        /// <summary>        /// 将时间戳转换成yyyy-mm-dd hh-mm-ss格式        /// </summary>        /// <param name="timeMsec">毫秒</param>        public static string FormattingTime1(long timeMsec, char split = '-')        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);            string str = date.ToString(string.Format("yyyy{0}MM{0}dd HH:mm:ss", split));            return str;        }        /// <summary>        /// 将时间戳转换成yyyy/MM/dd格式        /// </summary>        /// <param name="timeMsec">毫秒</param>        public static string FormattingTimeTo_yyyMMdd0(long timeMsec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);            string str = date.ToString("yyyy/MM/dd ");            return str;        }        /// <summary>        /// 将时间戳转换成yyyy.MM.dd格式        /// </summary>        /// <param name="timeMSec">毫秒</param>        public static string FormattingTimeTo_yyyMMdd1(long timeMSec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMSec);            string str = date.ToString("yyyy.MM.dd");            return str;        }        /// <summary>        /// 将时间戳转换成yyyy-MM-dd格式        /// </summary>        /// <param name="timeMsec"></param>        public static string FormattingTimeTo_yyyMMdd2(long timeMsec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);            string str = date.ToString("yyyy-MM-dd ");            return str;        }        /// <summary>        /// 将时间戳转换成MM/dd格式        /// </summary>        /// <param name="timeSec"></param>        public static string FormattingTimeTo_MMdd(long timeSec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeSec);            string str = date.ToString("MM/dd");            return str;        }        /// <summary>        /// 输入一段时间(毫秒秒),将时间转换成HH:mm:ss格式        /// </summary>        /// <param name="timeMsec"></param>        public static string FormattingTimeTo_HHmmss(long timeMsec)        {            TimeSpan ts = new TimeSpan(0, 0, (int)(timeMsec / 1000));            string strH = ts.Hours.ToString().Length == 1 ? "0" + ts.Hours : ts.Hours.ToString();            string strM = ts.Minutes.ToString().Length == 1 ? "0" + ts.Minutes : ts.Minutes.ToString();            string strS = ts.Seconds.ToString().Length == 1 ? "0" + ts.Seconds : ts.Seconds.ToString();            return string.Format("{0}:{1}:{2}", strH, strM, strS);        }        /// <summary>        /// 输入一段时间(毫秒),将时间转换成DD天HH小时mm分格式        /// </summary>        /// <param name="timeMsec"></param>        public static string FormattingTimeTo_DDHHmm(long timeMsec)        {            TimeSpan ts = new TimeSpan(0, 0, (int)(timeMsec / 1000));            // string strD = ts.Days.ToString().Length == 1 ? "0" + ts.Days : ts.Days.ToString();            // string strH = ts.Hours.ToString().Length == 1 ? "0" + ts.Hours : ts.Hours.ToString();            // string strM = ts.Minutes.ToString().Length == 1 ? "0" + ts.Minutes : ts.Minutes.ToString();            string strD = ts.Days.ToString();            string strH = ts.Hours.ToString();            string strM = ts.Minutes.ToString();            return string.Format("{0}天{1}时{2}分", strD, strH, strM);        }        /// <summary>        /// 输入一段时间(毫秒),将时间转换成DD:HH:mm格式        /// </summary>        /// <param name="timeMsec"></param>        public static string FormattingTimeTo_DD_HH_mm(long timeMsec)        {            TimeSpan ts = new TimeSpan(0, 0, (int)(timeMsec / 1000));            string strD = ts.Days.ToString();            string strH = ts.Hours.ToString();            string strM = ts.Minutes.ToString();            return string.Format("{0}:{1}:{2}", strD, strH, strM);        }        /// <summary>        /// <summary>        /// 将时间戳转换成HH:mm格式        /// </summary>        /// <param name="timeMsec">毫秒</param>        public static string FormattingTimeTo_HHmm(long timeMsec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);            string str = date.ToString("HH:mm");            return str;        }        /// <summary>        /// <summary>        /// 将时间戳转换成mm:ss格式        /// </summary>        /// <param name="timeMsec">毫秒</param>        public static string FormattingTimeTo_mmss(long timeMsec)        {            DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);            string str = date.ToString("mm:ss");            return str;        }        /// <summary>        /// 计算两个时间戳之间的时间差,返回格式为: 1天1小时1分1秒,如果时间差小于1天,则返回格式为: 03:59:30        /// </summary>        /// <param name="startTimeStamp">开始时间戳毫秒级,一般是服务器当前时间</param>        /// <param name="endTimeStamp">结束时间戳毫秒级</param>        /// <returns></returns>        public static string GetTimeLeft(long startTimeStamp, long endTimeStamp)        {            DateTime dtStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(startTimeStamp);            DateTime dtEnd = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(endTimeStamp);            TimeSpan timeLeft = dtEnd.Subtract(DateTime.UtcNow).Add(DateTime.UtcNow.Subtract(dtStart));            string timeLeftFormatted;            if (timeLeft.TotalHours < 24)            {                timeLeftFormatted = timeLeft.ToString(@"hh\:mm\:ss");            }            else            {                timeLeftFormatted = string.Format("{0}天{1}小时{2}分", timeLeft.Days, timeLeft.Hours, timeLeft.Minutes);            }            return timeLeftFormatted;        }        /// <summary>        /// 测试函数耗时        /// </summary>        /// <param name="function"></param>        public static void CalculateExecutionTime(Action function)        {            Stopwatch stopwatch = new Stopwatch();            stopwatch.Start();            // Invoke the provided function            function.Invoke();            stopwatch.Stop();            ET.Log.Warning("Execution time: " + stopwatch.Elapsed.TotalMilliseconds + " ms");        }    }}
 |