C\#시간 차 를 계산 하 는 소수 문제 해결

3419 단어 C#시간차
질문:
startTime = DateTime.Now;            -----------slExecutedTime.Text = (DateTime.Now - startTime).ToString();실행 결과:실 행 됨:00:00:03.1234434(뒤에 작은 숫자 가 많이 나 올 것 입 니 다)원 하 는 실행 결과:실 행 됨:00:00:03
--------------------------------------------------------------------------------
해결 방안 1(추천):
TimeSpan 관련 속성:


Add: TimeSpan 。
Days: TimeSpan 。
Duration: TimeSpan 。
Hours: TimeSpan
Milliseconds: TimeSpan 。
Minutes: TimeSpan 。
Negate: 。
Seconds: TimeSpan 。
Subtract: TimeSpan 。
Ticks: TimeSpan tick 。
TotalDays: TimeSpan 。
TotalHours: TimeSpan 。
TotalMilliseconds: TimeSpan 。
TotalMinutes: TimeSpan 。
TotalSeconds: TimeSpan 。

/// <summary>
        ///
        /// </summary>
        /// <param name="dateBegin"> </param>
        /// <param name="dateEnd"> </param>
        /// <returns> ( ) , : 0.00239 </returns>
        public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
        {
            TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
            TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
            TimeSpan ts3 = ts1.Subtract(ts2).Duration();
            //
            return ts3.TotalMilliseconds.ToString();
        }
이것 은 가장 기본 적 인 것 입 니 다.밀리초 수 를 얻 었 습 니 다.당신 이 단순히 당신 을 필요 로 하 는 그런 형식 이 라면 10 위 권 안에 들 수 있 습 니 다.
ts3.ToString("g")   0:00:07.171ts3.ToString("c")   00:00:07.1710000ts3.ToString("G")   0:00:00:07.1710000 세 가지 형식 을 선택 할 수 있 습 니 다.저 는 사실 한 가지 가 필요 할 때 캡 처 한 시험 을 사용 하 는 것 이 빠 를 것 을 권장 합 니 다.예 를 들 어

ts3.ToString("g").Substring(0,8)   0:00:07.1
ts3.ToString("c").Substring(0,8)   00:00:07
ts3.ToString("G").Substring(0,8)   0:00:00
방안 2:비교적 번거롭다

#region
        public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
        {
            string dateDiff = null;
            try
            {
                TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                TimeSpan ts = ts1.Subtract(ts2).Duration();
                string hours = ts.Hours.ToString(), minutes = ts.Minutes.ToString(),seconds = ts.Seconds.ToString();
                if(ts.Hours<10)
                {
                    hours = "0" + ts.Hours.ToString();
                }
                if (ts.Minutes<10)
                {
                    minutes = "0" + ts.Minutes.ToString();
                }
                if(ts.Seconds<10)
                {
                    seconds = "0" + ts.Seconds.ToString();
                }
                dateDiff = hours + ":"+ minutes + ":"+ seconds;
            }
            catch
            {

            }
            return dateDiff;
        }
        #endregion

출처:http://www.cnblogs.com/hongfei/archive/2013/03/11/2953366.html

좋은 웹페이지 즐겨찾기