示例#1
0
        public static string ElapsedTimeString(DateTime time, TimeStringType type = TimeStringType.Short)
        {
            int days = 0, hours = 0, minutes = 0, seconds = 0;

            if (TimeIsInThePast(time))
            {
                TimeSpan elapsedTime = TimeSpan.FromSeconds(DateTime.UtcNow.Subtract(time).TotalSeconds);
                days    = elapsedTime.Days;
                hours   = elapsedTime.Hours;
                minutes = elapsedTime.Minutes;
                seconds = elapsedTime.Seconds;
            }
            return(GetTimeString(days, hours, minutes, seconds, type));
        }
示例#2
0
        public static string RemainingTimeString(DateTime time, TimeStringType type = TimeStringType.Short)
        {
            int days = 0, hours = 0, minutes = 0, seconds = 0;

            if (TimeIsInTheFuture(time))
            {
                TimeSpan remainingTime = TimeSpan.FromSeconds(time.Subtract(DateTime.UtcNow).TotalSeconds);
                days    = remainingTime.Days;
                hours   = remainingTime.Hours;
                minutes = remainingTime.Minutes;
                seconds = remainingTime.Seconds;
            }
            return(GetTimeString(days, hours, minutes, seconds, type));
        }
示例#3
0
 /// <summary>
 /// CD构造函数
 /// </summary>
 /// <param name="theLabel"></param>
 /// <param name="theHours"></param>
 /// <param name="theMinutes"></param>
 /// <param name="theSeconds"></param>
 /// <param name="theEndAction">CD结束时回调</param>
 public AutoCountDown(Text theLabel, int theHours, int theMinutes, int theSeconds, Action theEndAction = null)
 {
     mText               = theLabel;
     mCountingText       = "";
     mStopText           = "";
     mEndText            = "";
     mDays               = 0;
     mHours              = theHours;
     mMinutes            = theMinutes;
     mSeconds            = theSeconds;
     IsStillCountingDown = true;
     mEndAction          = theEndAction;
     mTimeType           = TimeStringType.UpToMinutes;
     mText.text          = FormatTime();
     EnumEventDispatcher.AddEventListener(EnumEventType.SecondPast, CountDown);
 }
示例#4
0
 /// <summary>
 /// CD构造函数
 /// </summary>
 /// <param name="theLabel"></param>
 /// <param name="secondsNum">CD秒数</param>
 /// <param name="theCountingText"></param>
 /// <param name="theStopText"></param>
 /// <param name="theEndText"></param>
 /// <param name="theTimeStringType"></param>
 /// <param name="theEndAction">CD结束时回调</param>
 public AutoCountDown(Text theLabel, int secondsNum, string theCountingText, string theStopText, string theEndText, TimeStringType theTimeStringType, Action theEndAction = null)
 {
     mText               = theLabel;
     mCountingText       = theCountingText;
     mStopText           = theStopText;
     mEndText            = theEndText;
     mDays               = secondsNum / SECONDS_DAY;
     mHours              = secondsNum % SECONDS_DAY / SECONDS_HOUR;
     mMinutes            = secondsNum % SECONDS_HOUR / SECONDS_MINUTE;
     mSeconds            = secondsNum % SECONDS_MINUTE;
     IsStillCountingDown = true;
     mEndAction          = theEndAction;
     mTimeType           = theTimeStringType;
     mText.text          = FormatTime();
     EnumEventDispatcher.AddEventListener(EnumEventType.SecondPast, CountDown);
 }
示例#5
0
        /// <summary>
        /// CD构造函数
        /// </summary>
        /// <param name="theLabel"></param>
        /// <param name="theHours"></param>
        /// <param name="theMinutes"></param>
        /// <param name="theSeconds"></param>
        /// <param name="theEndAction">CD结束时回调</param>
        public MogoCountDown(UILabel theLabel, int theHours, int theMinutes, int theSeconds, Action theEndAction = null)
        {
            label = theLabel;

            countingText = "";
            stopText     = "";
            endText      = "";

            days              = 0;
            hours             = theHours;
            minutes           = theMinutes;
            seconds           = theSeconds;
            stillCountingDown = true;

            endAction = theEndAction;

            timeType   = TimeStringType.UpToMinutes;
            label.text = FormatTime();

            EventDispatcher.AddEventListener(Events.OtherEvent.SecondPast, CountDown);
        }
示例#6
0
        /// <summary>
        /// CD构造函数
        /// </summary>
        /// <param name="theLabel"></param>
        /// <param name="secondsNum">CD秒数</param>
        /// <param name="theCountingText"></param>
        /// <param name="theStopText"></param>
        /// <param name="theEndText"></param>
        /// <param name="theTimeStringType"></param>
        /// <param name="theEndAction">CD结束时回调</param>
        public MogoCountDown(UILabel theLabel, int secondsNum, string theCountingText, string theStopText, string theEndText, TimeStringType theTimeStringType, Action theEndAction = null)
        {
            label = theLabel;

            countingText = theCountingText;
            stopText     = theStopText;
            endText      = theEndText;

            days              = secondsNum / SECONDS_DAY;
            hours             = secondsNum % SECONDS_DAY / SECONDS_HOUR;
            minutes           = secondsNum % SECONDS_HOUR / SECONDS_MINUTE;
            seconds           = secondsNum % SECONDS_MINUTE;
            stillCountingDown = true;

            endAction = theEndAction;

            timeType   = theTimeStringType;
            label.text = FormatTime();

            EventDispatcher.AddEventListener(Events.OtherEvent.SecondPast, CountDown);
        }
示例#7
0
        /// <summary>
        /// CD构造函数
        /// </summary>
        /// <param name="theLabel"></param>
        /// <param name="theEndAction">CD结束时回调</param>
        public MogoCountDown(UILabel theLabel, Action theEndAction = null)
        {
            label = theLabel;

            countingText = "";
            stopText = "";
            endText = "";

            days = 0;
            hours = 0;
            minutes = 0;
            seconds = 0;
            stillCountingDown = true;

            endAction = theEndAction;

            timeType = TimeStringType.UpToMinutes; 
            label.text = FormatTime();

            EventDispatcher.AddEventListener(Events.OtherEvent.SecondPast, CountDown);
        }
示例#8
0
        /// <summary>
        /// CD构造函数
        /// </summary>
        /// <param name="theLabel"></param>
        /// <param name="secondsNum">CD秒数</param>
        /// <param name="theCountingText"></param>
        /// <param name="theStopText"></param>
        /// <param name="theEndText"></param>
        /// <param name="theTimeStringType"></param>
        /// <param name="theEndAction">CD结束时回调</param>
        public MogoCountDown(UILabel theLabel, int secondsNum, string theCountingText, string theStopText, string theEndText, TimeStringType theTimeStringType, Action theEndAction = null)
        {
            label = theLabel;

            countingText = theCountingText;
            stopText = theStopText;
            endText = theEndText;

            days = secondsNum / SECONDS_DAY;
            hours = secondsNum % SECONDS_DAY / SECONDS_HOUR;
            minutes = secondsNum % SECONDS_HOUR / SECONDS_MINUTE;
            seconds = secondsNum % SECONDS_MINUTE;
            stillCountingDown = true;

            endAction = theEndAction;

            timeType = theTimeStringType;
            label.text = FormatTime();

            EventDispatcher.AddEventListener(Events.OtherEvent.SecondPast, CountDown);
        }
示例#9
0
        /// <summary>
        /// CD构造函数
        /// </summary>
        /// <param name="theLabel"></param>
        /// <param name="theDays">天数</param>
        /// <param name="theHours">小时数</param>
        /// <param name="theMinutes">分钟数</param>
        /// <param name="theSeconds">描述</param>
        /// <param name="theCountingText"></param>
        /// <param name="theStopText"></param>
        /// <param name="theEndText"></param>
        /// <param name="theTimeStringType">显示类型</param>
        /// <param name="theEndAction">CD结束时回调</param>
        public MogoCountDown(UILabel theLabel, int theDays, int theHours, int theMinutes, int theSeconds, string theCountingText, string theStopText, string theEndText, TimeStringType theTimeStringType, Action theEndAction = null)
        {
            label = theLabel;

            countingText = theCountingText;
            stopText = theStopText;
            endText = theEndText;

            days = theDays;
            hours = theHours;
            minutes = theMinutes;
            seconds = theSeconds;
            stillCountingDown = true;

            endAction = theEndAction;

            timeType = theTimeStringType;
            label.text = FormatTime();

            EventDispatcher.AddEventListener(Events.OtherEvent.SecondPast, CountDown);
        }
示例#10
0
        private static string GetTimeString(int days = 0, int hours = 0, int minutes = 0, int seconds = 0, TimeStringType type = TimeStringType.Short)
        {
            string result = "";

            switch (type)
            {
            case TimeStringType.Short:
                if (days > 0)
                {
                    result = ((days < 10) ? "0" + days.ToString() : days.ToString()) + "d " +
                             ((hours < 10) ? "0" + hours.ToString() : hours.ToString()) + "h";
                }
                else if (hours > 0)
                {
                    result = ((hours < 10) ? "0" + hours.ToString() : hours.ToString()) + "h " +
                             ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + "m";
                }
                else if (minutes > 0)
                {
                    result = ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + "m " +
                             ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString()) + "s";
                }
                else
                {
                    result = ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString()) + "s";
                }
                break;

            case TimeStringType.Long:
                if (days > 0)
                {
                    result = ((days < 10) ? "0" + days.ToString() : days.ToString()) + "d " +
                             ((hours < 10) ? "0" + hours.ToString() : hours.ToString()) + "h" +
                             ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + "m";
                }
                else if (hours > 0)
                {
                    result = ((hours < 10) ? "0" + hours.ToString() : hours.ToString()) + "h " +
                             ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + "m " +
                             ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString()) + "s";
                }
                else if (minutes > 0)
                {
                    result = ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + "m " +
                             ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString()) + "s";
                }
                else
                {
                    result = ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString()) + "s";
                }
                break;

            case TimeStringType.HoursMinutesSeconds:
                hours  = (days > 0)?days * hours:hours;
                result = ((hours < 10) ? "0" + hours.ToString() : (hours).ToString()) + ":" +
                         ((minutes < 10) ? "0" + minutes.ToString() : minutes.ToString()) + ":" +
                         ((seconds < 10) ? "0" + seconds.ToString() : seconds.ToString());
                break;
            }
            return(result);
        }