C\#TimeSpan 계산 시간 차(시간 간격)

TimeSpan 구조  시간 간격 을 표시 하 다.
네 임 스페이스:System 프로그램 집합:mscorlib(mscorlib.dll 에서)
설명:1.DateTime 값 유형 은 서기 0001 년 1 월 1 일 0 시 0 분 0 초 에서 서기 9999 년 12 월 31 일 23 시 59 분 59 초 사이 의 구체 적 인 날짜 시간 을 대표 한다.따라서 상상 범위 내의 모든 시간 을 DateTime 값 형식 으로 묘사 할 수 있다.TimeSpan 값 은 많은 속성 과 방법 을 포함 하고 있 습 니 다.TimeSpan 값 을 방문 하거나 처리 하 는 데 사 용 됩 니 다.
그 중 다섯 가지 과부하 방법 중 하나 인 구조 TimeSpan(int days,int hours,int minutes,int seconds)
아래 목록 은 그 중의 일부 방법 과 속성 해석 을 포함한다.
  • Add:다른 TimeSpan 값 과 추가 합 니 다.
  • Day:일수 로 계 산 된 TimeSpan 값 을 되 돌려 줍 니 다.
  • Duration:TimeSpan 의 절대 치 를 획득 합 니 다.
  • Hours:시간 으로 계 산 된 TimeSpan 값 을 되 돌려 줍 니 다
  • Milliseconds:밀리초 로 계 산 된 TimeSpan 값 을 되 돌려 줍 니 다.
  • Minutes:분 으로 계산 한 TimeSpan 값 을 되 돌려 줍 니 다.
  • Negate:현재 인 스 턴 스 의 반대 수 를 되 돌려 줍 니 다.
  • Seconds:초 로 계 산 된 TimeSpan 값 을 되 돌려 줍 니 다.
  • Subtract:그 중에서 다른 TimeSpan 값 을 빼 세 요.
  • Ticks:TimeSpan 값 의 tick 수 를 되 돌려 줍 니 다.
  • Total Day:TimeSpan 값 이 표시 하 는 일 수 를 되 돌려 줍 니 다.
  • Total Hours:TimeSpan 값 이 표시 하 는 시간 수 를 되 돌려 줍 니 다.
  • TotalMilliseconds:TimeSpan 값 이 표시 하 는 밀리초 수 를 되 돌려 줍 니 다.
  • Total Minutes:TimeSpan 값 이 표시 하 는 분 수 를 되 돌려 줍 니 다.
  • Total Seconds:TimeSpan 값 이 표시 하 는 초 수 를 되 돌려 줍 니 다.
  • 코드 인 스 턴 스
    
    TimeSpan ts = new TimeSpan(12, 12, 11, 12, 21);
          int days = new TimeSpan(12, 12, 11, 12, 21).Days;
          TimeSpan duration = new TimeSpan(-12, 12, 11, 12, 21).Duration();//24     
          double totalDays = new TimeSpan(12, 12, 11, 12, 21).TotalDays;
          double totalHours = new TimeSpan(2, 12, 11, 12, 21).TotalHours;
          int hours = new TimeSpan(12, 12, 11, 12, 21).Hours;
          int minutes = new TimeSpan(12, 12, 11, 12, 21).Minutes;
          TimeSpan ts2 = new TimeSpan(1, 3, 01, 12, 21);
          // TimeSpan ts2 = new TimeSpan(5, 3, 1, 12, 21);//this is also right
          TimeSpan ts3 = new TimeSpan(5, 3, 01, 12, 21).Add(ts);
          TimeSpan ts4 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts);
          TimeSpan ts5 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts).Duration();
          TimeSpan Negate = new TimeSpan(5, 3, 01, 12, 21).Negate();
          DateTime dtnow = DateTime.Now;
          Console.WriteLine(ts);
          Console.WriteLine(days);
          Console.WriteLine(duration);
          Console.WriteLine(totalDays);
          Console.WriteLine(totalHours);
          Console.WriteLine(hours);
          Console.WriteLine(minutes);
          Console.WriteLine(ts2);
          Console.WriteLine(ts+ts2);
          Console.WriteLine(ts3);
          Console.WriteLine("Subtract:"+ts4);
          Console.WriteLine("Duration:" + ts5);
          Console.WriteLine(ts - ts2);
          Console.WriteLine(Negate);
          DateTime span = DateTime.Now.Add(ts2);
          TimeSpan spdate = span - DateTime.Now;
          long dateTicks = DateTime.Now.Add(ts2).Ticks;
          Console.WriteLine(span);
          Console.WriteLine(spdate);
          Console.WriteLine(dateTicks);
    

    마이너스
    위 는 비교적 늦 은 날짜 가 비교적 일찍 줄 어 든 날짜 이기 때문에 각 속성 치 는 양수 이 고 비교적 빠 른 날짜 가 늦게 줄 어 든 날짜 라면 속성 치 는 마이너스 이다.
    ASP.NET 에서 두 시간 이 서로 줄 어 들 고 하나의 TimeSpan 인 스 턴 스 를 얻 었 습 니 다.TimeSpan 은 일부 속성 이 있 습 니 다.Days,Total Days,Hours,Total Hours,Minutes,Total Minutes,Seconds,Total Seconds,Ticks,TotalTicks 가 없 는 지 주의 하 세 요.
    예 를 들 어 설명 하 다.
    시간 1 은 2010-1-2 8:43:35;
    시간 2 는 2010-1-12 8:43:34 입 니 다.
    시간 2 에서 시간 1 을 줄 여 TimeSpan 인 스 턴 스 를 얻 습 니 다.
    그럼 시간 2 대 시간 1 대 9 일 23 시간 59 분 59 초.
    그럼 데 이 즈 는 9,아 워 스 는 23,미 닛 은 59,세 컨 즈 는 59.
    다시 볼 때 Ticks 는 100 나 초,즉 1000 만 분 의 1 초 를 나타 내 는 시간 주기 이다.그러면 Ticks 는 여기 서 총 몇 개의 시간 주기 차이 가 있 는 지 를 나타 낸다.즉,9*24*3600*10000000+23*3600*10000000+59*10000000+59*10000000=8639900000000 이다.3600 은 한 시간의 초 이다.
    Total Days 는 Ticks 를 일수 로 환산 하 는 것 이다.즉,863990000000/(10000000*24*3600)=9.99998842592593 이다.
    Total Hours 는 Ticks 를 시간 수로 환산 하 는 것 입 니 다.즉,863990000000/(10000000*3600)=239.9997222222 입 니 다.
    Total Minutes 는 Ticks 를 분 수로 환산 하 는 것 이다.즉,863990000000/(10000000*60)=14399.9833333333 이다.
    Total Seconds 는 Ticks 를 초 수로 환산 하 는 것 이다.즉,863990000000/(10000000)=863999 이다.
    다음은 자주 사용 하 는 방법 을 제공 합 니 다.
    최근 발표 시간 까지 의 함수 구하 기
    
    public string DateStringFromNow(DateTime dt) 
    { 
    TimeSpan 
    span = DateTime.Now - dt; 
    if (span.TotalDays > 60) 
    { 
    return 
    dt.ToShortDateString(); 
    } 
    else if ( span.TotalDays > 30 ) 
    { 
    
    return "1   "; 
    } 
    else if (span.TotalDays > 14) 
    { 
    return 
    "2  "; 
    } 
    else if (span.TotalDays > 7) 
    { 
    return "1  "; 
    } 
    
    else if (span.TotalDays > 1) 
    { 
    return string.Format("{0}  ", 
    (int)Math.Floor(span.TotalDays)); 
    } 
    else if (span.TotalHours > 1) 
    { 
    return string.Format("{0}   ", (int)Math.Floor(span.TotalHours)); 
    } 
    else if (span.TotalMinutes > 1) 
    { 
    return string.Format("{0}   ", (int)Math.Floor(span.TotalMinutes)); 
    } 
    else if (span.TotalSeconds >= 1) 
    { 
    return string.Format("{0}  ", 
    (int)Math.Floor(span.TotalSeconds)); 
    } 
    
    else { 
    return "1  "; 
    
    } 
    }
    
    C\#에서 TimeSpan 을 사용 하여 두 시간의 차 이 를 계산 합 니 다.
    두 날짜 사이 의 어떤 시간 단 위 를 거꾸로 추가 할 수 있다.
    
    private string DateDiff(DateTime DateTime1, DateTime DateTime2)
    {string dateDiff = null;
    TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
    TimeSpan ts2 = new 
    TimeSpan(DateTime2.Ticks);
    TimeSpan ts = ts1.Subtract(ts2).Duration();
    dateDiff = ts.Days.ToString()+" "+ ts.Hours.ToString()+"  "+ ts.Minutes.ToString()+"  "+ ts.Seconds.ToString()+" ";
    return dateDiff;
    }
    TimeSpan ts = Date1 - Date2; 
    double dDays = ts.TotalDays;//      ,  1 12      1.5
    예 를 들 어 하루 12 시간 이면 1.5.
    int nDays = ts.Days;//정수 일수,하루 12 시간 또는 하루 20 시간 결 과 는 모두 1 이다.
    
    /// <summary>
    ///     
    /// </summary>
    /// <param name="today">    </param>
    /// <param name="writeDate">    </param>
    /// <param name="n">    </param>
    <returns>      true,    false</returns>
    private bool CompareDate(string today, string writeDate, int n)
    {
    DateTime Today = Convert.ToDateTime(today);
    DateTime WriteDate = Convert.ToDateTime(writeDate);
    WriteDate = WriteDate.AddDays(n);
    if (Today>= WriteDate)
    return false;
    else
    return true;
    }
    Date 데이터 형식 을 정의 할 때 다음 세 가 지 를 주의해 야 합 니 다.
    1.Date 수 치 는 숫자 기호'\#'로 묶 어야 합 니 다.
    2.Date 수치 에 있 는 날짜 데 이 터 는 있어 도 되 고 없어 도 됩 니 다.'m/d/yyy'형식 에 맞 아야 합 니 다.
    3.Date 수치 에 있 는 시간 데 이 터 는 있 으 나 마 나 합 니 다.날짜 데이터 와 빈 칸 을 통 해 분리 해 야 하고 시간 과 초 사이 에':'로 분리 해 야 합 니 다.
    1.DateTime 과 TimeSpan 의 관계 와 차이 점:
    DateTime 과 TimeSpan 은 Visual Basic.Net 에서 시간,날짜 유형 데 이 터 를 처리 하 는 두 가지 주요 한 구조 로 이 두 가지 차이 점 은 DatTime 은 고정된 시간 을 나타 내 고 TimeSpan 은 시간 간격,즉 시간 을 나타 낸다 는 것 이다.아래 에 소 개 된 프로그램 예제 에서 TimeSpan 은 현재 시간 과 주어진 시간의 차 이 를 사용 합 니 다.
    2.DateTime 과 TimeSpan 에서 자주 사용 되 는 멤버 와 설명:
    DateTime 구조 와 TimeSpan 구 조 는 풍부 한 방법 과 속성 을 제공 합 니 다.
    속성 설명
  • Date 이 인 스 턴 스 의 날짜 부분 을 가 져 옵 니 다.
  • Day 가 이 인 스 턴 스 를 가 져 오 는 날 짜 는 이 달의 며칠 입 니 다.
  • DayOfWeek 가 이 인 스 턴 스 를 가 져 오 는 날 짜 는 무슨 요일 입 니까?
  • DayOfYear 가 이 인 스 턴 스 를 가 져 온 날 짜 는 이 해 의 며칠 입 니 다.
  • Hour 는 이 인 스 턴 스 가 표시 하 는 날짜 의 시간 부분 을 가 져 옵 니 다.
  • Millisecond 는 이 인 스 턴 스 가 표시 하 는 날짜 의 밀리초 부분 을 가 져 옵 니 다.
  • Minute 는 이 인 스 턴 스 가 표시 하 는 날짜 의 분 부분 을 가 져 옵 니 다.
  • Month 는 이 인 스 턴 스 가 표시 하 는 날짜 의 월 부분 을 가 져 옵 니 다.
  • Now 에서 DateTime 인 스 턴 스 를 만 듭 니 다.이 컴퓨터 의 현재 로 컬 날짜 와 시간 입 니 다.
  • Second 는 이 인 스 턴 스 가 표시 하 는 날짜 의 초 부분 을 가 져 옵 니 다.
  • TimeOfDay 에서 이 인 스 턴 스 를 가 져 오 는 당일 의 시간 입 니 다.
  • Today 에서 현재 날 짜 를 가 져 옵 니 다.
  • Year 는 이 인 스 턴 스 가 표시 하 는 날짜 의 연도 부분 을 가 져 옵 니 다.
  • Add 지정 한 TimeSpan 의 값 을 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddDays 는 지정 한 일 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddHours 는 지정 한 시간 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddMilliseconds 는 지정 한 밀리초 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddMinutes 는 지정 한 분 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddMonths 는 지정 한 월 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddSeconds 는 지정 한 초 수 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • AddYears 는 지정 한 연 도 를 이 인 스 턴 스 의 값 에 추가 합 니 다.
  • DaysInMonth 는 지 정 된 연도 에서 지 정 된 달의 일 수 를 되 돌려 줍 니 다.
  • IsLeapYear 는 지 정 된 연도 가 윤년 인지 아 닌 지 를 가리킨다.
  • Parse 는 날짜 와 시간의 지정 문자열 을 같은 효 과 를 가 진 DateTime 인 스 턴 스 로 변환 합 니 다.
  • Subtract 는 이 인 스 턴 스 에서 지정 한 시간 이나 지속 시간 을 뺀 다.
  • ToLongDateString 은 이 인 스 턴 스 의 값 을 같은 효 과 를 가 진 긴 날짜 문자열 표시 형식 으로 변환 합 니 다.
  • ToLongTimeString 은 이 실례 의 값 을 같은 효 과 를 가 진 장시간 문자열 표시 형식 으로 변환 합 니 다.
  • ToShortTimeString 은 이 인 스 턴 스 의 값 을 같은 효 과 를 가 진 짧 은 시간 문자열 표시 형식 으로 변환 합 니 다.
  • ToShortDateString 은 이 인 스 턴 스 의 값 을 같은 효 과 를 가 진 짧 은 날짜 문자열 표시 형식 으로 변환 합 니 다.
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기