123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- using System;
- 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)
- {
- DateTime date = TimeInfo.Instance.ToDateTime(timeMsec);
- string str = date.ToString("yyyy-MM-dd HH:mm:ss");
- 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();
- 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;
- }
- }
- }
|